[英]Comparing two numpy arrays and removing elements
我一直在研究几种解决方案,但找不到所需的解决方案。
我有两个numpy
数组。 让我们在这里举一个小例子 。
x = [1,2,3,4,5,6,7,8,9]
y = [3,4,5]
我想比较x和y,并删除那些在y中的x值。
所以我希望我的final_x是
final_x = [1,2,6,7,8,9]
我发现np.in1d返回一个与x
长度相同的布尔数组,它是True,其中x
的元素在y
,否则为False。 但是,如果没有其他方法,该如何使用它来获取我的final_x
?
如果确实有numpy数组,则可以使用numpy.setdiff1d
,如下所示
import numpy as np
x = np.array([1,2,3,4,5,6,7,8,9])
y = np.array([3,4,5])
z = np.setdiff1d(x, y)
# array([1, 2, 6, 7, 8, 9])
只需将np.in1d
返回的布尔数组的取反版本np.in1d
给数组x
:
>>> x = np.array([1,2,3,4,5,6,7,8,9])
>>> y = [3,4,5]
>>> x[~np.in1d(x, y)]
array([1, 2, 6, 7, 8, 9])
您可以使用内置集:
final_x = set(x) - set(y)
并从第一个减去第二个。 如果您final_x
,可以将final_x
转换为list
或numpy.array
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.