NumPy array omformning

Arrayomformering

Omfremming betyder ændring af arrayets form.

Arrayets form er antallet af elementer i hver dimension.

Gennem omformering kan vi tilføje eller fjerne dimensioner eller ændre antallet af elementer i hver dimension.

Omdan fra 1-D til 2-D

Eksempel

Konverter følgende 1-D array med 12 elementer til en 2-D array.

Den yderste dimension vil have 4 arrayer, hver indeholder 3 elementer:

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)

Kør Eksempel

Omdan fra 1-D til 3-D

Eksempel

Konverter følgende 1-D array med 12 elementer til en 3-D array.

Den yderste dimension vil have 2 arrayer, hver indeholder 3 arrayer, hver med 2 elementer:

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)

Kør Eksempel

Kan vi omformere til hvilken som helst form?

Ja, så længe de nødvendige elementer er ens i begge former.

Vi kan omformere en 1D-array med 8 elementer til en 2D-array med 2 rækker og 4 kolonner, men vi kan ikke omformere den til en 3x3 2D-array, fordi det vil kræve 3x3 = 9 elementer.

Eksempel

Forsøg at konvertere en 1D-array med 8 elementer til en 2D-array med 3 elementer i hver dimension (vil give fejl):

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(3, 3)
print(newarr)

Kør Eksempel

Returnerer en kopi eller en visning?

Eksempel

Tjek om den returnerede array er en kopi eller en visning:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print(arr.reshape(2, 4).base)

Kør Eksempel

Det ovenstående eksempel returnerer det oprindelige array, så det er en visning.

Ukendt dimension

Du kan bruge en 'ukendt' dimension.

Dette betyder, at du ikke nødvendigvis skal angive et præcist tal for én af dimensionerne i reshape-metoden.

Tilføje -1 Som værdi vil NumPy beregne dette tal for dig.

Eksempel

Konverter en 1D-array med 8 elementer til en 3D-array med 2x2 elementer:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(2, 2, -1)
print(newarr)

Kør Eksempel

Bemærk:Vi kan ikke konvertere -1 Til en eller flere dimensioner.

Flattening af arrayer

Flattening af arrayer (Flattening the arrays) betyder at konvertere multidimensionelle arrayer til 1D-arrayer.

Vi kan bruge reshape(-1) For at gøre dette.

Eksempel

Konverter array til 1D-array:

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
newarr = arr.reshape(-1)
print(newarr)

Kør Eksempel

Bemærk:Der er mange funktioner, der kan ændre numpy flatten, ravel til at ændre arrayets form, og kan også rearrangere elementer som rot90, flip, fliplr, flipud osv. Disse funktioner tilhører numpy's mellem- til avancerede dele.