如何解决AttributeError:'list'对象没有属性'astype'?

Tom*_*Tom 10 python attributes numpy

我只是想知道如何解决这个属性错误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
Run Code Online (Sandbox Code Playgroud)

有没有人可以给我建议?

谢谢!

小智 11

根本问题是Python列表和NumPy阵列的混淆,NumPy阵列是不同的数据类型.np.foo(array)通常调用的NumPy方法如果给它们一个Python列表就不会抱怨,它们会默默地将它转换为NumPy数组.但是如果你试图调用对象中包含的方法,array.foo()那么它当然必须具有适当的类型.

我建议使用

data = np.array(data, dtype=np.float32)
Run Code Online (Sandbox Code Playgroud)

这样NumPy就可以同时知道数组的类型.这样可以避免在首次创建数组然后将其强制转换为其他类型时进行不必要的工作.

NumPy建议使用dtype对象而不是像"float32"这样的字符串.