我在一个名为' a'的numpy数组中有一个对应于给定日,月和年的列。我将所有这三个值与另一个名为' b'的数组的列进行比较。它也对应于日,月和年,以找到' a'等于' b'到目前为止,我尝试过:
a[:,3:6,1] == b[1,3:6]
array([[False, True, True],
[ True, True, True],
[False, True, True],
...,
[False, False, False],
[False, False, False],
[False, False, False]], dtype=bool)
工作正常,但我需要与[True,True,True]对应的行 我也试过了:
np.where(a[:,3:6,1] == b[1,3:6], a[:,3:6,1])
ValueError: either both or neither of x and y should be given
和
a[:,:,1].all(a[:,3:6,1] == b[1,3:6])
TypeError: only length-1 arrays can be converted to Python scalars
这是一种快速简便的方法吗?
答案 0 :(得分:3)
您可以沿最后一个轴使用np.all()
:
rows = np.where((a[:,3:6,1]==b[1,3:6]).all(axis=1))[0]
它将存储在rows
所有行包含True
值的索引中。