我有行和列坐标的数组
idx_test_r = np.array([0, 0, 2, 0, 2, 4])
idx_test_c = np.array([0, 1, 0, 2, 2, 6])
# in coordinates format
idx_test = np.stack((idx_test_r, idx_test_c), axis=-1)
和两个点的行坐标和列坐标
point_r = np.array([0, 2])
point_c = np.array([0, 2])
也就是说,我有坐标为(0, 0), (2, 2)
的点.
我想为idx_test
中的每一行确定它是等于(0, 0)
还是等于(2, 2)
.
就是我想要一个结果
[True, False, False, False, True, False]
对于这里提出的这个 case .
我知道如何使用for循环(这个站点上有很多例子),但是我需要在一个循环中多次调用这个函数.
因此,speed是非常令人担忧的.
Edit个
如果我有一个二维数组,而不是一维数组idx_test_r
,会怎么样?
idx_test_r = np.array([[0, 0, 2, 0, 2, 4], [1, 1, 3, 1, 3, 5]])
idx_test_c
的情况也是如此?
我想到了
equal_to_bad_idx = np.logical_or.reduce(np.all(bad_idx[:, None, :] == np.reshape(all_idx, (-1, 2)), axis=2))
个
但这是相当缓慢的.