исключение элемента из массива numpy - PullRequest
2 голосов
/ 31 декабря 2011

Я хочу получить массив c в качестве результата, но я не знаю, как:

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

c состоит из элементов a, которых нет в b:

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

Ответы [ 2 ]

5 голосов
/ 31 декабря 2011

Возможно, более простым решением является следующее:

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])

Вы можете найти все подобные операции над множествами для массивов в документации: http://docs.scipy.org/doc/numpy/reference/routines.set.html

2 голосов
/ 31 декабря 2011
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) тоже.

...