我有一个简单的numpy2d数组。例如:
M=np.array([[15,1,0],
[19,5,2]])
我循环检查每一行(轴1) 存在大于例如2的值。 因为第一个值总是大于2,所以我对数组进行切片,只检查该行中其他n个值中哪个大于2。你知道吗
#A
for i in range(len(M)):
if any(M[i,1:])>=2:
disp('Super')
或者,因为我还不太熟悉python,所以我也使用了这个代码,它的功能应该是一样的,对吧?你知道吗
#B
for i in range(len(M)):
if any(x>=2 in x in M[i,1:]):
disp('Great')
我现在的问题是any不关心我的切片(M[I,1:])。它总是检查整个数组,当然会找到一个大于2的值。 我原以为第一封信是假的,第二封信是真的
any(l)获取一个值列表(或iterable),如果它所迭代的任何值是真的,则返回True,即bool(value)==True。因此,将任何(…)的输出与数字进行比较是没有意义的,这样我就不会执行
any(M[i,1:])>=2
。你知道吗但是,您可以执行
any(M[i, 1:] > 2)
,其中M[i, 1:] > 2
向给定行的每个值广播大于运算符,并返回一个any
可以对其进行操作的布尔数组。你知道吗相关问题 更多 >
编程相关推荐