ndarray.any()错误:ValueError:'轴'进入是出界的

时间:2015-11-05 11:50:26

标签: python numpy

我遇到了以下问题:

运行此代码

 a = np.array([1,2,3])
 a.any(2)

给我错误:ValueError: 'axis' entry is out of bounds

看起来方法any()收到的axis参数太大了。当我尝试指定我收到的axis参数时:

a.any(2, axis=1)
--->
TypeError: _any() got multiple values for argument 'axis'

就像有axis个参数设置两次一样。

我使用Pyzo2014a ver.3.5与Python 3.4.3和numpy 1.10.1

4 个答案:

答案 0 :(得分:1)

a.any()测试给定轴上的任何数组元素是否为True。要测试2中是否a,您可以使用

np.any(a==2)

(a==2).any()

或只是

2 in a

答案 1 :(得分:0)

 a = np.array([1,2,3])
 a.any(2)
ValueError: 'axis' entry is out of bounds

您收到此错误,因为您只有一个axis 0您没有值为

的轴

第二个错误

a.any(2, axis=1)
--->
TypeError: _any() got multiple values for argument 'axis'

因为轴是方法argument的第一个any所以在这里您提供的2axis,并且您再次分配1axis参数

答案 2 :(得分:0)

您正在将错误的轴传递给any。请注意,any的第一个参数是数组的轴,并且因为a是一维数组,所以您可以通过0作为它的轴:

>>> a.any(0)
True
  

numpy.any(a,axis = None,out = None,keepdims = False)[来源]

如果您是2D数组,则可以传递01

>>> a = np.array([[1,2,3],[0,0,0]])
>>> a.any(0)
array([ True,  True,  True], dtype=bool)
>>> a.any(1)
array([ True, False], dtype=bool)

答案 3 :(得分:0)

我想你想要:

(a == 2).any()

any州的方法签名:

  

a:array_like可以转换为的输入数组或对象   阵列。

     

轴:无或int或元组,可选轴或轴   沿着其执行逻辑OR减少。默认值(axis =   无)是对输入的所有维度执行逻辑或   阵列。轴可能是负数,在这种情况下,它从最后一个计数到   第一轴。 1.7.0版中的新功能。如果这是一个整数元组,a   减少是在多个轴上执行,而不是单个轴或   所有的轴都像以前一样。

     

out:ndarray,可选的Alternate输出数组   在哪里放置结果。它的形状必须与   预期输出及其类型被保留(例如,如果它是类型的   float,然后它将保持不变,返回1.0表示True,0.0表示   错,无论a)的类型。请参见doc.ufuncs(“输出”一节   参数“)了解详情。

     

keepdims:bool,optional如果设置为   确实,减少的轴将作为尺寸保留在结果中   大小一。使用此选项,结果将正确广播   反对原来的arr。

所以你混淆axis param在哪里与你试图测试的值因此错误:

In [208]:
a = np.array([1,2,3])
(a==2).any()

Out[208]:
True