1. ホーム
  2. python

[解決済み] AttributeError:'list' object has no attribute 'astype' を解決するにはどうしたらいいですか?

2022-02-14 21:30:59

質問

の属性エラーはどうすれば解決するのでしょうか? python3.6. エラーは

'list' オブジェクトに '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

誰かアドバイスしてくれる人はいませんか?

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

解決方法は?

根本的な問題は、Python のリストと NumPy の配列が、異なるデータ型であるために混同していることです。NumPyのメソッドで、リストとして呼び出されるものは np.foo(array) 通常、Python のリストを与えても文句は言いません。彼らはそれを黙って NumPy 配列に変換します。しかし、オブジェクトに含まれるメソッドを呼び出そうとした場合、例えば array.foo() の場合、当然ながら、すでに適切な型を持っていなければなりません。

を使うことをお勧めします。

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

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

NumPyでは dtypeオブジェクト のような文字列ではなく、quot;float32" のような文字列を使用します。