Strasen'in Matrix Çarpımını python kullanarak yapıyorum. Bölünme aşamasında, daha büyük bir matrisi daha küçük alt matrislere böleriz. Bir matrisi bölmek için yerleşik bir numpy işlevi var mı?Matris, numpy kullanarak 4 bloğa nasıl bölünür?
6
A
cevap
11
Tam olarak değil, dizi dilimleme notasyonunu kullanarak kendinizi kolayca kolayca yapabilmeniz gerekir.
>>> A = np.linspace(0,24,25).reshape([5,5,])
>>> A
array([[ 0., 1., 2., 3., 4.],
[ 5., 6., 7., 8., 9.],
[ 10., 11., 12., 13., 14.],
[ 15., 16., 17., 18., 19.],
[ 20., 21., 22., 23., 24.]])
olun B A sol üst 2x2: Eğer veri kopyalamak gerekiyorsa B görünüm olduğunu
>>> B = A[0:2,0:2]
Not, bu bir
>>> B[1,1] = 60
>>> print A
[[ 0. 1. 2. 3. 4.]
[ 5. 60. 7. 8. 9.]
[ 10. 11. 12. 13. 14.]
[ 15. 16. 17. 18. 19.]
[ 20. 21. 22. 23. 24.]]
ile verileri paylaşır
>>> B = A[0:2,0:2].copy()
>>> B
array([[ 0., 1.],
[ 5., 60.]])
>>> B[1,1] = 600
>>> B
array([[ 0., 1.],
[ 5., 600.]])
>>> A
array([[ 0., 1., 2., 3., 4.],
[ 5., 60., 7., 8., 9.],
[ 10., 11., 12., 13., 14.],
[ 15., 16., 17., 18., 19.],
[ 20., 21., 22., 23., 24.]])
2
ben karşılaştım: A'dan, kopyalama yöntemi kullanmak Aynı sorun ve bulunan bazı yerleşik numpy fonksiyonları 4 submatrices içine benim matrisi bölmek için (benim matrisleri boyuttadır 2^N * 2^N) İşte
yazdığım kod şudur:upper_half = np.hsplit(np.vsplit(my_matrix, 2)[0], 2)
lower_half = np.hsplit(np.vsplit(my_matrix, 2)[1], 2)
upper_left = upper_half[0]
upper_right = upper_half[1]
lower_left = lower_half[0]
lower_right = lower_half[1]
Bonus numpy kullanarak onları tekrar birleşebilirler:
C=np.vstack([np.hstack([c11, c12]), np.hstack([c21, c22])])
vsplit hsplit hstack ve vstack bu amaçla yapılmış gibi görünüyor
İlgili konular
- 1. Matris eşit parçalara nasıl bölünür?
- 2. Numpy matris çarpım
- 3. Bir dizeyi 4 karakterlik bir bloğa bölme
- 4. Vektör, sütunlara nasıl bölünür - PySpark kullanarak
- 5. nltk.parse.stanford kitaplığını kullanarak cümleler nasıl bölünür
- 6. Numpy, boolean dilimleme ile alt matris nasıl elde edilir
- 7. Matris içinde alt matrisler nasıl başvurulur?
- 8. const char * nasıl bölünür?
- 9. Matris Çarpma ve Seri
- 10. python3-numpy: Bir dosyaya numpy savetxt kullanarak ekleme
- 11. Pandalar veya python kullanarak verilerden matris alma
- 12. PHP: Bir Bloğa bağlantı
- 13. Bayt dizisini bloğa dönüştürme
- 14. Matris kullanılarak Quaternion to Matris
- 15. Bir dizide iki öğe eklemek ve bir matris oluşturmak için numpy nasıl kullanılır?
- 16. Uzun NSString sayfaları nasıl bölünür?
- 17. Sözcüklerin listesi diziye nasıl bölünür?
- 18. NumPy
- 19. 2 matris ekleme ve python'da 2 matrisi çarparak scipy/numpy kullanarak
- 20. Metin değeri C# sözcükleriyle diziye nasıl bölünür?
- 21. SSE kullanarak 8 x 8 matris işlemini nasıl yapabilirim?
- 22. Numpy
- 23. Dize eşit uzunluktaki alt dizelere nasıl bölünür?
- 24. NumPy
- 25. NumPy genfromtxt: fill_missing'i kullanarak doğru
- 26. Stdin'den (konsol) matris nasıl okunur?
- 27. Hesaplayın Seyrek Matris
- 28. Numpy
- 29. Matris
- 30. jinja2 filtrelerini bir bloğa uygulama?