Pythonは初めての私で、Pythonを使用して機械学習コードを実行しています。私のシナリオは、SQLからデータを読み取り、MLPトレーニングに使用できるようにこのデータに形を与えようとしていることです。
私のコードは以下です:
connection = mysql.connector.connect(Host='localhost', port=3306, user='root', passwd='mysql', db='medicalgame')
cur = connection.cursor()
query = ""
cur.execute(query)
# X_train will be a list of list and later we'll convert it to a numpy ndarray
X_train = []
for row in cur:
X_train.add(row)
connection.close()
X_train should be ready
X_train = np.asarray(X_train)
print 'The shape of X_train is', X_train.shape
デバッグ中、私が得たクエリ結果は次のようになります:(6、1、1、1、2、u'F '、1、0、0、19)誰でも私を助けることができますか、エラーを修正して形を与えます私のX_train、MLPが入力としてそれを受け入れるように?
メッセージは明確です。 list
にはメソッドがありませんadd
ordered(それはdunderを持っているため__add__
メソッドですが、これは追加用ですリスト間)。 insert
できますが、append
したいです。したがって、正しい方法は次のとおりです。
X_train = []
for row in cur:
X_train.append(row)
しかし、リストに直接変換する推奨方法(cur
要素を繰り返して、シンプルでパフォーマンスの高い方法でリストを作成する):
X_train = list(cur)
しかし、リストには偽のデータが含まれているため、それを行うことはできません。幸い、次のようにネストされたリスト内包でそれらを除外できます。
X_train = [[x for x in r if type(x)==int] for r in cur]
これにより、リストのリストが作成されますが、整数以外の値は除外され、numpy.asarray
収量(サンプルデータを使用):
[[ 6 1 1 1 2 1 0 0 19]
[ 6 1 1 1 2 1 0 0 14]]