Pagbabago ng Hakbang 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)

Magsimula ang halimbawa

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)

Magsimula ang halimbawa

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)

Magsimula ang halimbawa

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)

Magsimula ang halimbawa

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)

Magsimula ang halimbawa

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)

Magsimula ang halimbawa

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.