mlg*_*556 1 arrays numpy scipy python-3.x
标题是不言自明的:我有一个 numpy 数组(比如 ints)
[ 1 2 10 2 12 2 ],我想删除所有出现的2,因此结果数组是[ 1 10 12 ]. 我最好尽可能快地执行此操作,因为我使用的是相对较大的数组。
NumPy 有一个被调用的函数,numpy.delete()但它将索引作为参数,而我没有。
编辑:这个问题确实不同于使用条件检查从 numpy 数组中删除某些元素,我猜这是一个更“一般”的情况。但是,从数组中删除出现的想法是非常基本的,值得提出自己的明确问题,所以我保留了这个问题。
您可以使用索引:
arr = np.array([1, 2, 10, 2, 12, 2])
print(arr[arr != 2])
# [ 1 10 12]
Run Code Online (Sandbox Code Playgroud)
时机非常好:
from timeit import Timer
arr = np.array(range(5000))
print(min(Timer(lambda: arr[arr != 4999]).repeat(500, 500)))
# 0.004942436999999522
Run Code Online (Sandbox Code Playgroud)