从阵列中删除阵列



我想从数组 A 中删除可能在数组 B 中找到的元素。

例如:

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

C= [1, 17, 28]

Numpy 有一个函数:

numpy.setdiff1d(A, B)

这将为您提供一个具有预期结果的新数组。

有关 sciPy 文档的更多信息

你可以试试:

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

使用一个列表推导式,通过获取不在B中的值来遍历A

A = [1, 5, 17, 28, 5]
B = [3, 5]
print([x for x in A if x not in B])
# [1, 17, 28]

试试这个

numpy.array([e for e in A if not e in B])

您也可以尝试:

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)

最新更新