我遇到了以下问题:
运行此代码
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
答案 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
所以在这里您提供的2
为axis
,并且您再次分配1
到axis
参数
答案 2 :(得分:0)
您正在将错误的轴传递给any
。请注意,any
的第一个参数是数组的轴,并且因为a
是一维数组,所以您可以通过0
作为它的轴:
>>> a.any(0)
True
numpy.any(a,axis = None,out = None,keepdims = False)[来源]
如果您是2D数组,则可以传递0
和1
:
>>> 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