我有一个二维np.array
喜欢
x = np.array([[1,2], [4,5], [4,6], [5,4], [4,5]])
现在我想要x等于[4,5]
(-> [1, 4]
)的索引。运算符==
以不同的方式工作:
x == [4,5]
array([[False, False],
[ True, True],
[ True, False],
[False, False],
[ True, True]], dtype=bool)
但我想要像[False, True, False, False, True]
这样的东西。可以and
吗?
通常阵列很大,我必须做很多次,所以我需要一个非常快的方法。
答案 0 :(得分:4)
这应该是numpy-way:
x = np.array([[1,2], [4,5], [4,6], [5,4], [4,5]])
(x == [4,5]).all(1)
#out: array([False, True, False, False, True], dtype=bool)
答案 1 :(得分:0)
之前没有numpy的经验,但这适用于标准数组:
x = [[1, 2], [4, 5], [4, 6], [5, 4], [4, 5]]
indices = [i for i, v in enumerate(x) if v == [4, 5]]
# gives [1, 4]
matches = [v == [4, 5] for v in x]
# gives [False, True, False, False, True]