Удалить элементы в одном массиве NumPy из другого массива NUMPY - PullRequest
2 голосов
/ 25 сентября 2019

Я бы хотел вычесть элемент из массива numpy, который не существует в другом.

Пример:

a = np.array([1,2,3,4])
b = np.array([1,2])

Результат:

[3, 4]

Ответы [ 2 ]

5 голосов
/ 25 сентября 2019

Вы можете использовать функцию Numpy's setdiff1d:

import numpy as np

a = np.array([1, 2, 3, 4])
b = np.array([1, 2])

c = np.setdiff1d(a, b)

print(c)

Вывод:

[3 4]

Если дублирующиеся значения не должны быть удалены, то вы можетеиспользуйте функцию Numpy's in1d:

import numpy as np

a = np.array([3, 1, 4, 2, 3, 4])
b = np.array([1, 2])

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

print(c)

Вывод:

[3 4 3 4]
2 голосов
/ 25 сентября 2019

Если вы хотите сохранить дубликаты, вы можете индексировать, используя in1d:

>>> a = np.array([1,2,3,3])
>>> b = np.array([1,2])
>>> np.in1d(a, b)  # Boolean array that says where a is in b
array([ True,  True, False, False], dtype=bool)
>>> ~np.in1d(a, b))  # Boolean array that says where a is NOT in b
array([False, False,  True,  True], dtype=bool)
>>> a[~np.in1d(a, b)]  # Use the Boolean array as index to get your answer
array([3, 3])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...