gpt4 book ai didi

python - 使用 numpy setdiff1d 保持顺序

转载 作者:太空宇宙 更新时间:2023-11-03 14:03:34 26 4
gpt4 key购买 nike

a = np.array([1, 2, 3])
b = np.array([4, 2, 3, 1, 0])
c = np.setdiff1d(b, a)
print("c", c)

结果是 c [0, 4] 但我想要的答案是 c [4 0]

我该怎么做?

最佳答案

使用 np.in1d 获取不匹配的掩码,并简单地将 boolean-index 放入 b 以保留其中元素的顺序 -

b[~np.in1d(b,a)]

分步运行示例 -

In [14]: a
Out[14]: array([1, 2, 3])

In [15]: b
Out[15]: array([4, 2, 3, 1, 0])

In [16]: ~np.in1d(b,a)
Out[16]: array([ True, False, False, False, True], dtype=bool)

In [17]: b[~np.in1d(b,a)]
Out[17]: array([4, 0])

关于python - 使用 numpy setdiff1d 保持顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46261671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com