【发布时间】:2019-03-05 09:41:03
【问题描述】:
我正在尝试使用另一个 2D numpy 数组值过滤 2D numpy 数组。像这样的:
array1 = np.array([[ 0, 0],
[86, 4],
[75, 74],
[78, 55],
[53, 94],
[49, 83],
[99, 75],
[99, 10],
[32, 4],
[55, 99],
[62, 95],
[ 0, 0]])
array2 = np.array([[55, 99],
[32, 4],
[75, 74]])
array1[np.isin(array1, array2[2:5]).all(axis=1) == 0]
我的理想输出将是 array1 的过滤版本,其中没有与 array2 切片中的行相等的行。 问题是当我这样做时:
np.isin(array1, array[2:5])
输出是:
array([[False, False],
[False, True],
[ True, True],
[False, True],
[False, False],
[False, False],
[ True, True],
[ True, False],
[ True, True],
[ True, True],
[False, False],
[False, False]])
它错误地将 [99,75] 行分类为 [True, True],因为这两个值都单独存在于我们的数组 2 中。 是否有更正确的方法来根据行的所有值进行过滤?
【问题讨论】: