yerine bir toplam matris döndürür. Ben numpy'li bir matris kullanarak oldukça karmaşık bir toplama yapıyorum. Matrisin şekli matrix.shape = (500, 500)
şeklindedir ve dizinin şekli arr.shape = (25,)
şeklindedir. , float64
numpy.sum() öğesi, tek bir sayı yerine
np.sum()
çok yavaş ve tek şamandıra döndürür:
totalsum = np.sum([i * matrix for i in arr])
anlamıyorum şudur: işleyişi aşağıdaki gibidir. Python'un sum.()
ile aynı işlem, diğer bir deyişle
totalsum2 = sum([i*matrix for i in arr])
Amaçlı matrisin şekline korur. Yani, ortaya çıkan şekil totalsum2.shape() = (500, 500)
'dur. Ha?
np.sum()
'un özellikle numpy ndarrays ile çalışırken, sum()
'dan daha uzun sürmesi garip olduğunu düşünüyorum.
Tam olarak burada neler oluyor? sum()
ile karşılaştırıldığında yukarıdaki değerleri toplayan np.sum()
nasıldır?
Matris şeklini korumak için np.sum()
olmasını isterim. Boyutları, np.sum()
matris boyutunu koruyacak ve tek bir float döndürmeyecek şekilde nasıl ayarlayabilirim?
Bu işlem sadece np.sum (arr) * matrisi olarak yazılmalıdır. – Daniel
@Ophion dizisi ve matris aynı şekilde değil. Tüm matrisi, dizideki her bir değerle çarpmak istiyorum. Sonra, ortaya çıkan tüm matrisleri toplamak istiyorum. – JesseTrevve
Bu, einsum notasyonunda np.einsum ("k, ij-> ij", arr, matrix) 'olarak yazılabilir. Görülebileceği gibi tensörler arasında ortak bir endeks yoktur. Yukarıdaki yöntemlerden herhangi birini ve doğru olarak seçtiğiniz yanıtı hesaplayarak bunu kendiniz doğrulayabilirsiniz. – Daniel