Como posso encontrar linhas idênticas em matrizes diferentes, independentemente da ordem dos elementos usando o Numpy? [duplicado]
Aug 19 2020
Eu estava trabalhando em um projeto e me deparei com esse problema. Eu tenho duas matrizes A e B de forma (8,3) e (2,2). Como posso encontrar todas as linhas de A que contêm elementos de cada linha de B, independentemente da ordem dos elementos em B?
A = np.random.randint(0,5,(8,3))
B = np.random.randint(0,5,(2,2))
Obrigado!
Respostas
2 Geom Aug 19 2020 at 06:05
Aqui está uma maneira de fazer isso:
Import numpy as np
A = np.random.randint(0,5,(8,3))
B = np.random.randint(0,5,(2,2))
C = (A[..., np.newaxis, np.newaxis] == B)
rows = np.where(C.any((3,1)).all(1))[0]
print(rows)
Resultado:
[0 2 3 4]
2 BrycePaule Aug 19 2020 at 06:14
import numpy as np
A = np.random.randint(0, 5, (8, 3))
B = np.random.randint(0, 5, (2, 2))
for BRow in B:
for ARow in A:
if all(item in ARow for item in BRow):
print(f'{BRow} in {ARow}')
Isso não verifica se há duplicatas, por exemplo, aceita [3, 3] in [1, 2, 3]
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas