我只是想知道如何解决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
有人可以给我建议吗?
谢谢!
答案 0 :(得分:7)
根本问题是Python列表和NumPy阵列的混淆,NumPy阵列是不同的数据类型。如果你给它们一个Python列表,那么被调用为np.foo(array)
的NumPy方法通常不会抱怨,它们会默默地将它转换为NumPy数组。但是,如果您尝试调用对象中包含的方法,例如array.foo()
,那么它当然必须具有相应的类型。
我建议使用
data = np.array(data, dtype=np.float32)
以便NumPy立即知道数组的类型。这样可以避免在首次创建数组然后将其强制转换为其他类型时进行不必要的工作。
NumPy建议使用dtype objects而不是像“float32”这样的字符串。