检查条件是否在列表列表中成立
Check whether a condition holds within a list of lists
我有一个列表列表(使用 NumPy 转换为数组)如下:
array([[ 1, 1, 1],
[ 4, 3, 1],
[ 5, 2, 1],
[ 8, 4, 1],
[ 9, 4, 1],
[12, 3, 1],
[13, 2, 1],
[14, 3, 2],
[15, 1, 1]])
我想得到一个布尔变量,指示在上面的数组中是否有任何行的第一列和最后一列分别等于r1和r2。请注意,r1 和 r2 是常数。最有效的方法是什么?谢谢
你可以把你的条件放在里面np.any
。例如:
import numpy as np
a = np.array([[ 1, 1, 1],
[ 4, 3, 1],
[ 5, 2, 1],
[ 8, 4, 1],
[ 9, 4, 1],
[12, 3, 1],
[13, 2, 1],
[14, 3, 2],
[15, 1, 1]])
np.any((a[:,0] == 15) & (a[:,2] == 1))
# True
np.any((a[:,0] == 14) & (a[:,2] == 1))
# False
我有一个列表列表(使用 NumPy 转换为数组)如下:
array([[ 1, 1, 1],
[ 4, 3, 1],
[ 5, 2, 1],
[ 8, 4, 1],
[ 9, 4, 1],
[12, 3, 1],
[13, 2, 1],
[14, 3, 2],
[15, 1, 1]])
我想得到一个布尔变量,指示在上面的数组中是否有任何行的第一列和最后一列分别等于r1和r2。请注意,r1 和 r2 是常数。最有效的方法是什么?谢谢
你可以把你的条件放在里面np.any
。例如:
import numpy as np
a = np.array([[ 1, 1, 1],
[ 4, 3, 1],
[ 5, 2, 1],
[ 8, 4, 1],
[ 9, 4, 1],
[12, 3, 1],
[13, 2, 1],
[14, 3, 2],
[15, 1, 1]])
np.any((a[:,0] == 15) & (a[:,2] == 1))
# True
np.any((a[:,0] == 14) & (a[:,2] == 1))
# False