web-dev-qa-db-ja.com

AttributeError: 'list'オブジェクトに属性 'astype'がないことを解決する方法は?

私はpython3.6.の属性エラーを解決する方法を疑問に思っています

「リスト」オブジェクトには属性「astype」がありません。

私の関連コードは一撃です。

def _init_mean_std(self, data):
    data = data.astype('float32')
    self.mean, self.std = np.mean(data), np.std(data)
    self.save_meanstd()
    return data

私にアドバイスできる人はいますか?

ありがとうございました!

10
Tom

根本的な問題は、Pythonリストと異なるデータ型であるNumPy配列の混乱です。np.foo(array)として呼び出されるNumPyメソッドは、通常、それらを指定しても文句を言いません。 Pythonリスト、彼らはそれを静かにNumPy配列に変換します。しかし、array.foo()のようなオブジェクトに含まれるメソッドを呼び出そうとするなら、もちろんすでに適切なタイプ。

私は使用することをお勧めします

data = np.array(data, dtype=np.float32)

配列の型がNumPyに一度にわかるように。これにより、最初に配列を作成してから別の型にキャストする不必要な作業を回避できます。

NumPyは、「float32」などの文字列の代わりに dtypeオブジェクト を使用することをお勧めします。

11
user6655984