Сравните два двухмерных массива numpy и удалите строки

У меня есть два 2D-массива numpy

a = [[1,2,3], [3,4,5]] b = [[1,2,3], [3,4,5], [6,7,8]]

Как мне сделать b-a, как при удалении строк в b, найденных в a?

Мне нужен ответ c = [[6,7,8]]

Спасибо!


person Gayatri    schedule 25.01.2020    source источник
comment
У вас действительно есть массивы numpy? Обратите внимание, что они не то же самое, что списки.   -  person Austin    schedule 25.01.2020
comment
да они ndarrays   -  person Gayatri    schedule 25.01.2020
comment
Должны ли они быть в одном ряду?   -  person wwii    schedule 25.01.2020


Ответы (2)


for i in range(len(a)):
   for j in range(len(b)):
       if(b[j] == a[i]):
           b.pop(j)

Думаю, это должно решить вашу проблему.

person Mateusz Puto    schedule 25.01.2020

Вы можете использовать понимание списка здесь:

a = [[1,2,3], [3,4,5]] 
b = [[1,2,3], [3,4,5], [6,7,8]]

result = [x for x in b if x not in a]
print(result)

Выход :

[[6, 7, 8]]
person Sanjay Thapa    schedule 25.01.2020
comment
Спасибо. Но это не работает для ndarrays. - person Gayatri; 25.01.2020