我有一个列表列表(使用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