Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python simple numpy.sum引发ValueError:';轴';禁止进入_Python_Numpy - Fatal编程技术网

Python simple numpy.sum引发ValueError:';轴';禁止进入

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' 有人有什

我觉得我忽略了这里显而易见的东西,但是当我尝试一个非常简单的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'
有人有什么智慧的话吗?我觉得这应该尽可能简单。谢谢

在类似数组的对象上运行。因此,以下措施将起作用:

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。

细节中的魔鬼。谢谢非常感谢