データをホットエンコードしようとしていました。Pythonのリストとナンシー配列
AttributeError: 'NoneType' object has no attribute 'astype'
:
inputs = []
for i in range(vocabulary_size):
inputs.append(np.arange(num_labels) == data[i]).astype(np.float32)
は私にエラーを例外: データはホットエンコードするために17005207.
= vocabulary_sizeのリストですが、私は次のコードnum_labels = 100 の入力のリストを作りました
追加機能の中でdtype = np.float32を試しましたが、もう一度間違っていました。
は、私はこれをしようとすると:vocabulary_sizeのXのnum_labelsのホットエンコードされた入力シーケンス:
inputs = []
for i in range(vocabulary_size):
inputs.append(np.arange(num_labels) == data[i])
inputs = np.array(inputs,dtype=np.float32)
が、私は正しい答えを得ます。
Numpyを使用しないで1行の代替ソリューションがありますか?
解決済み:リスト(データ)でnumpy配列(入力)を使用して直接行うことはできますか?データに関する
情報:データ= np.ndarray(LEN(ワード)、DTYPE = np.int32)
再フォーマット機能:
def reformat(data):
num_labels = vocabulary_size
print (type(data))
data = (np.arange(num_labels) == data[:,None]).astype(np.int32)
return data
print (data,len(data))
return data
新しい質問:データの次元があります(vocabulary_size、)... ravelやreshapeを使ってデータを(1、vocabulary_size)の次元に変換する方法は?
あなたの誤差が来ますあなたが 'inputs.append()'呼び出しによって**返されたもの**から 'astype'属性を取得しようとしていることから、それはNoneオブジェクトです。つまり、明らかに動作しないNone.astype()を呼び出そうとします。 – jadsq
落ち着いてください。 3回の編集をすばやく行うと、1秒ごとに変更されるため、質問に答えることができません。ラヴェルや改造があなたを助けることができると分かっているようです:あなたは 'numpy.reshape'の文書を読もうとしましたか? – YuppieNetworking
Sry @YuppieNetworkingもしそれがあまりにも大きかったら。明確にしたいと思っていました。私は文書を読んでいました。 – SupposeXYZ