gpt4 book ai didi

python - 从一个 numpy 数组中删除另一个数组中元素的有效方法

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:16 43 4
gpt4 key购买 nike

从一个 numpy 数组中删除元素的最佳方法是什么?本质上,我在 np.delete() 之后,其中数组的顺序无关紧要。

import numpy as np
a = np.array([2,1,3])
print a
b = np.array([4,1,2,5,2,3])
b = np.delete(b, a) # doesn't work as desired
print b # want [4,5,2]

迭代 a 的元素对于大型数组来说非常慢。

最佳答案

这是一种使用排序的方法-

def remove_first_match(a,b):
sidx = b.argsort(kind='mergesort')
unqb, idx = np.unique(b[sidx],return_index=1)
return np.delete(b,sidx[idx[np.in1d(unqb,a)]])

样本运行-

In [177]: a = np.array([2,1,3])
...: b = np.array([4,1,2,5,2,3,2,3])
...:

In [178]: remove_first_match(a,b)
Out[178]: array([4, 5, 2, 2, 3])

In [179]: a = np.array([2,2,1,3])
...: b = np.array([4,5])
...:

In [180]: remove_first_match(a,b)
Out[180]: array([4, 5])

关于python - 从一个 numpy 数组中删除另一个数组中元素的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40624209/

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