numpy 操作不能和形状一起广播.

xj3cbfub  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(77)
x = np.linspace(-10,10, 21) 
z = np.linspace(-10,10, 11) 
V = (1/((5+x)**2+(z)**2)**1.5) - 7.9617*(1/((5-x)**2+(z)**2)**1.5 )

字符串
错误:操作数不能与形状一起广播(21,)(11,)
我尝试使用np.array和np.ndarray,但它也不起作用

tyg4sfes

tyg4sfes1#

linspace的第三个参数是要生成多少个值,它设置了结果数组的形状
https://numpy.org/doc/stable/reference/generated/numpy.linspace.html

>>> np.linspace(1, 10, 10)
array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])
>>> np.linspace(1, 10, 10).shape
(10,)

字符串
导致不同形状的broadcasting数组的操作(如添加)将无法正常工作
你认为结果会怎样?

>>> np.linspace(1, 10, 10) + np.linspace(1, 10, 20)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: operands could not be broadcast together with shapes (10,) (20,) 
>>> np.linspace(1, 10, 10) + np.linspace(1, 10, 10)
array([ 2.,  4.,  6.,  8., 10., 12., 14., 16., 18., 20.])

相关问题