Python simple numpy.sum引发ValueError:';轴';禁止进入
我觉得我忽略了这里显而易见的东西,但是当我尝试一个非常简单的numpy.sum用法时Python simple numpy.sum引发ValueError:';轴';禁止进入,python,numpy,Python,Numpy,我觉得我忽略了这里显而易见的东西,但是当我尝试一个非常简单的numpy.sum用法时 import numpy as np np.sum(1,2) 我得到以下错误 ValueError: 'axis' entry is out of bounds 所以我尝试了以下方法 import numpy as np np.sum(1,2, axis = 0) 这会产生以下错误 TypeError: sum() got multiple values for argument 'axis' 有人有什
import numpy as np
np.sum(1,2)
我得到以下错误
ValueError: 'axis' entry is out of bounds
所以我尝试了以下方法
import numpy as np
np.sum(1,2, axis = 0)
这会产生以下错误
TypeError: sum() got multiple values for argument 'axis'
有人有什么智慧的话吗?我觉得这应该尽可能简单。谢谢 在类似数组的对象上运行。因此,以下措施将起作用:
np.sum([1,2])
a = np.array([1,2,3,4,5])
np.sum(a)
如果有疑问,请使用帮助:
>>> help(np.sum)
help(np.sum)
显示函数的调用签名:
In [72]: help(np.sum)
sum(a, axis=None, dtype=None, out=None, keepdims=False)
Sum of array elements over a given axis.
In [84]: help(zip)
zip(...)
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
当您调用np.sum(1,2)
时,np.sum
接收两个,1和2。
a
绑定到第一个位置参数1,axis
绑定到第二个位置参数2。
这将引发ValueError:“axis”项超出范围
,因为数组标量,
np.数组(1)
没有2轴
调用np.sum(1,2,axis=0)
时,a
被绑定到1,并且axis
被赋值两次,第一次是由位置参数2赋值,第二次是由关键字参数axis=0
赋值。
这导致Python引发TypeError:sum()为参数“axis”获取了多个值
当函数接受任意数量的参数时,函数签名的编写方式如下:
func(x1 [, x2 [...]])
例如,请参见zip
的函数签名:
In [72]: help(np.sum)
sum(a, axis=None, dtype=None, out=None, keepdims=False)
Sum of array elements over a given axis.
In [84]: help(zip)
zip(...)
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
或者简单地使用省略号:
In [83]: help(min)
min(...)
min(iterable[, key=func]) -> value
min(a, b, c, ...[, key=func]) -> value
同样,要将1和2传递给a
,可以使用
In [76]: np.sum([1,2])
Out[76]: 3
因为
[1,2]
是一个对象——列表中包含1和2。细节中的魔鬼。谢谢非常感谢