Pagbabago ng Hakbang ng Array ng NumPy
- Nakaraang Pahina Hakbang ng Array ng NumPy
- Susunod na Pahina Iteration ng Array ng NumPy
Array Reshape
Ang reshape ay nangangahulugan na baguhin ang hugis ng array.
Ang hugis ng array ay ang bilang ng elemento sa bawat sukat.
Sa pamamagitan ng reshape, maaari naming magdagdag o makuha ng sukat o baguhin ang bilang ng elemento sa bawat sukat.
Mula 1-D hanggang 2-D
Halimbawa
I-convert ang 1-D array na may 12 na elemento sa 2-D array.
Ang pinakalalim na sukat ay magiging 4 na array, bawat isa ay may 3 na elemento:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(4, 3) print(newarr)
Mula 1-D hanggang 3-D
Halimbawa
I-convert ang 1-D array na may 12 na elemento sa 3-D array.
Ang pinakalalim na sukat ay magiging 2 na array, bawat isa ay may 3 na array, bawat isa ay may 2 na elemento:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(2, 3, 2) print(newarr)
Maaari naming i-reshape sa anumang hugis?
Oo, hangga't ang mga elemento na kailangan para sa reshape ay magkapareho sa dalawang hugis.
Maaari naming i-reshape ang 8 na elemento na 1D array sa 4 na elemento sa 2x2 na 2D array, ngunit hindi namin maaaring i-reshape ito sa 3x3 na 2D array dahil kailangan ito ng 3x3 = 9 na elemento.
Halimbawa
Subukang i-convert ang 1D array na may 8 na elemento sa 2D array na may 3 na elemento sa bawat sukat (magiging error):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
Ibalik kopya o view?
Halimbawa
Tingnan kung ang ibabalik na array ay kopya o view:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) print(arr.reshape(2, 4).base)
Ang halimbawa sa itaas ay binabalik ang orihinal na array, kaya ito ay isang view.
Di kilalang dimensyon
Maaari mong gamitin ang isang 'di kilalang' dimensyon.
Ito ay nangangahulugan na hindi mo kailangang magbigay ng tiyak na numero para sa isang dimensyon sa paraan na reshape.
Ibigay -1
Bilang halaga, ang NumPy ay magkakaroon ng pagkalkula para sa numero na iyon sa iyo.
Halimbawa
Pagbaguhin ang 1D array ng 8 na elemento sa 2x2 na 3D array ng elemento:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(2, 2, -1) print(newarr)
Komentaryo:Hindi maaari naming ibukod ang -1
Ibigay sa mahigit isang dimensyon.
Pagbubukod ng array
Ang pagbubukod ng array (Flattening the arrays) ay ang pagbabagong hugis ng multidimensional array sa 1D array.
Maaari naming gamitin reshape(-1)
Upang gawin ito
Halimbawa
Ibukod ang array sa 1D array:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
Komentaryo:May maraming pagbabago na maaaring gamitin upang baguhin ang hugis ng array sa numpy flatten, ravel, at maaaring icalalagay muli ang mga elemento sa rot90, flip, fliplr, flipud at iba pa. Ang mga ito ay kasama sa中级 hanggang advanced na bahagi ng numpy.
- Nakaraang Pahina Hakbang ng Array ng NumPy
- Susunod na Pahina Iteration ng Array ng NumPy