Wdrażam Mnożenie macierzy strsenów za pomocą pythona. W etapie dzielenia dzielimy większą macierz na mniejsze pod-macierze. Czy istnieje wbudowana funkcja numpy do podziału macierzy?Jak podzielić macierz na 4 bloki za pomocą numpy?
6
A
Odpowiedz
11
Niezupełnie, ale przy użyciu zapisu rozkładu macierzy należy to zrobić całkiem łatwo.
>>> 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.]])
Producent B lewy górny 2x2 w A:
>>> B = A[0:2,0:2]
Zauważ, że B jest widokiem, dzieli dane z
>>> 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.]]
Jeśli chcesz skopiować dane z A, użyj metody kopiowania:
>>> 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
Wpadłem na ten sam problem i niektóre funkcje wbudowane NumPy podzielić mi matrycę do 4 podmatryc (Kim są matryce o rozmiarze 2^N * 2^N)
tutaj to kod pisał:
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 do rekombinacji je za pomocą numpy:
C=np.vstack([np.hstack([c11, c12]), np.hstack([c21, c22])])
vsplit hsplit hstack i vstack wydają się być wykonane w tym celu
Powiązane problemy
- 1. Jak mogę przekształcić bloki w macierz blokowo-ukośną (NumPy)
- 2. Jak podzielić obraz na bloki w programie MATLAB?
- 3. Jak podzielić/podzielić tablicę na 2 za pomocą php?
- 4. Macierz odwrotna za pomocą MathNet.Numerics
- 5. Macierz Numpy plus wektor kolumnowy
- 6. Jak podzielić ramkę danych według wierszy, a następnie przetworzyć bloki?
- 7. Jak utworzyć pustą tablicę/macierz w NumPy?
- 8. Numpy modyfikować macierz w miejscu?
- 9. jak stworzyć macierz podobieństwa w numpy python?
- 10. Jak podzielić tablicę na wiele grup za pomocą Lodasha?
- 11. Jak podzielić sztukę 2D na trójkąty za pomocą OpenGL
- 12. Jak podzielić na partycje listę według predicate za pomocą java8?
- 13. Jak podzielić frazę na słowa za pomocą Regex w C#
- 14. Jak utworzyć losową ortonormalną macierz w python numpy
- 15. W jaki sposób mogę podzielić macierz na niewymiarowe podmodele?
- 16. Wyzeruj macierz o wyższej przekątnej, używając numpy
- 17. Konwertowanie ramki danych na macierz za pomocą plyr dully
- 18. Jak obliczyć pochodną za pomocą Numpy?
- 19. numpy podzielić wiersz po wierszu suma
- 20. Jak podzielić zdemontowany kod C na funkcje?
- 21. Jak mogę podzielić mój plik na bloki danych i przenieść te bloki z mojej aplikacji na Androida?
- 22. Jak podzielić tablicę zgodnie z warunkiem w numpy?
- 23. Próba wektoryzacji obliczeń iteracyjnych za pomocą numpy
- 24. Wielkość typu danych za pomocą NumPy
- 25. Jak podzielić kolumnę w widoku elastycznym za pomocą Bootstrap?
- 26. Jak podzielić background-color w 4
- 27. Android - jak podzielić widok na 4 równe części?
- 28. Nie można podzielić ciągu za pomocą |
- 29. Co oznacza macierz ** 2 w python/numpy?
- 30. Jak wypełnić macierz za pomocą równania w MATLAB?