Numpy kullanarak öğe sırasına bakılmaksızın farklı dizilerde aynı satırları nasıl bulabilirim? [çiftleme]
Aug 19 2020
Bir proje üzerinde çalışıyordum ve bu problemle karşılaştım. (8,3) ve (2,2) şeklinde iki A ve B dizim var. B'deki öğelerin sırasına bakılmaksızın, her B satırının öğelerini içeren tüm A satırlarını nasıl bulabilirim?
A = np.random.randint(0,5,(8,3))
B = np.random.randint(0,5,(2,2))
Teşekkürler!
Yanıtlar
2 Geom Aug 19 2020 at 06:05
İşte bunu yapmanın bir yolu:
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)
Çıktı:
[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}')
Bu, kopyaları kontrol etmez, örneğin kabul eder [3, 3] in [1, 2, 3]
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'