AttributeError:'numpy.ndarray'对象没有属性'sin'?

时间:2019-06-05 11:28:36

标签: python numpy

下面是我的短代码,但是有一个错误:"AttributeError: 'numpy.ndarray' object has no attribute 'sin'"。  我不明白为什么以及如何解决。 请指导我!

非常感谢!

import numpy as np
w1 = 0.3
w2 = 0.2
w0 = 0.4

x1 = np.linspace(0, 10, 50)
x2 = np.linspace(0, 10, 50)
X, Y = np.meshgrid(x1, x2)

A = np.array([1,X,Y],dtype=object)
w = np.array([[w0],[w1],[w2]])
Z = np.sin(A.dot(w))
print (Z)

1 个答案:

答案 0 :(得分:1)

因为您用A定义了dtype=object,所以A.dot(w)的结果也将是object类型。因此,numpy.sin尝试将sin的结果中未定义的元素的成员函数调用A.dot(w)

产生错误:np.sin(np.array([np.array(1)], dtype=object))
没有错误:np.sin(np.array([np.array(1)]))

正如@Adelin前面提到的,只需调用np.sin(A.dot(w)[0]