我有行和列坐标的数组
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]
。
我知道如何用for循环来实现(这个网站上有很多例子),但是我需要在一个循环中多次调用这个函数。
因此,速度是一个非常重要的问题。
编辑
如果不是一维数组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))
但这是相当缓慢的。
3条答案
按热度按时间z4bn682m1#
另一个解决方案:
字符串
印刷品:
型
ghhkc1vu2#
字符串
输出量:
型
hk8txs483#
我不知道这对你的用例来说是否足够快,但似乎能产生所需的输出:
字符串