从numpy数组中排除元素

时间:2011-12-31 12:57:41

标签: python arrays numpy elements

我想得到c数组作为结果,但我不知道如何:

import numpy as np
a = xrange(10)
b = np.array([3,2,1,9])

c由不在b中的元素组成:

c = np.array([0,4,5,6,7,8])

2 个答案:

答案 0 :(得分:5)

以下可能是一个更直接的解决方案:

import numpy as np
a = xrange(10)
b = np.array([3,2,1,9])

c = np.setdiff1d(a,b)

结果是:

In [7]: c
Out[7]: array([0, 4, 5, 6, 7, 8])

您可以在文档中找到numpy数组的所有类似集合的操作: http://docs.scipy.org/doc/numpy/reference/routines.set.html

答案 1 :(得分:2)

import numpy as np
a = np.arange(10)
b = np.array([3,2,1,9])

np.array(sorted(set(a) - set(b)))
# array([0, 4, 5, 6, 7, 8])

更新:也适用于a = xrange(10)