-1

下面是我的短代码,但它有一个错误: "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)
4

1 回答 1

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].

于 2019-06-05T11:46:05.643 回答