Удалить массив из массива - PullRequest
0 голосов
/ 29 августа 2018

Я хочу удалить элементы из массива A, которые можно найти в массиве B.

Например:

A = numpy.array([1, 5, 17, 28, 5])
B = numpy.array([3, 5])
C = numpy.delete(A, B)

C = [1, 17, 28]

Ответы [ 5 ]

0 голосов
/ 03 сентября 2018

Вы также можете попробовать:

V= [7,12,8,22,1]
N= [12,22,0,1,80,82,83,100,200,1000]
def test(array1, array2):
    A = array1
    B = array2
    c = []
    for a in range(len(A)):
        boolian=False
        for b in range(len(B)):
            if A[a]==B[b]:
                boolian=True
        if boolian==False:
            c.append(A[a])
    print(c)


test(V,N)
0 голосов
/ 29 августа 2018

Попробуйте это

numpy.array([e for e in A if not e in B])
0 голосов
/ 29 августа 2018

Используйте списочное понимание, которое перебирает A, принимая значения, которых нет в B:

A = [1, 5, 17, 28, 5]
B = [3, 5]

print([x for x in A if x not in B])
# [1, 17, 28]
0 голосов
/ 29 августа 2018

У Numpy есть функция для этого:

numpy.setdiff1d(A, B)

Это даст вам новый массив с ожидаемым результатом.

Подробнее о документации sciPy

0 голосов
/ 29 августа 2018

Вы можете попробовать:

list(set(A)-set(B))
#[1, 28, 17]

Или понимание списка:

[a for a in A if a not in B]

Другое решение:

import numpy 
A[~numpy.isin(A, B)]
#array([ 1, 17, 28])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...