2016-04-11 27 views
1

İki farklı matris şekli var: A ve B. Onları kesişim noktasında karşılaştırmak istiyorum. olduğuFarklı şekillerdeki matrislerin karşılaştırılması

, = a1 x a2 ve B = b1 x b2A.

A = np.ones((3, 4)) 
B = np.ones((5, 2)) 

sonra kavşak (3, 2) olacağını olsun. Bir sonraki adım, matrisleri (3, 2)'a ve karşılaştırmaya göre kırpmak olacaktır.

Bu şeyleri numpy kullanarak yapabiliyorum, ancak hepsi çok verimsiz ve yetersiz görünüyor. İki boyutlu A, B için bunu başarmanın kısa ve temiz bir yolu ne olurdu?

+0

Çalışma kodunuzu paylaşın ve örnek bir vaka ekleyin? – Divakar

cevap

2

Eğer doğru anlıyorsam, hem A hem de B'un içine sığabilecek en büyük alt alt diziyi arıyorsunuz. Sadece A ve B her boyut karşılaştırma ve en küçük olanı alabilir: o A[:3, :2], B[:3, :2] dönecektir senin örneğin diziler için

def largest_subarray(A, B): 
    dims = np.minimum(A.shape, B.shape)   # find smallest dimensions 
    idx = tuple(slice(None, dd) for dd in dims) # construct tuple of slice indices 
    return A[idx], B[idx]      # index into A and B 

.

İlgili konular