Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Omforma Arrayer | Vanligt Använda NumPy-Funktioner
Ultimata NumPy

Svep för att visa menyn

book
Omforma Arrayer

Omformning av arrayer i NumPy gör att du kan ändra formen på en array samtidigt som alla element bevaras. Det är en vanligt använd operation inom maskininlärning eftersom många funktioner och metoder i maskininlärningsbibliotek kräver att arrayer har en specifik form.

Arrayformer

Till exempel, en 1D-array med längden 5 har formen (5,), medan en 2D-array med 3 rader och 4 kolumner har formen (3, 4):

1234
import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
copy

ndarray.reshape()

NumPy-arrayer har en .reshape()-metod för att ändra form. Du behöver bara ange formen på den resulterande arrayen antingen som ett heltal, en tupl av heltal, eller heltal som separata argument.

Denna metod modifierar inte arrayen på plats, utan returnerar en ny array.

Notera

Faktum är att .reshape() returnerar en vy av den ursprungliga arrayen, så eventuella ändringar som görs på den omformade arrayen kommer också att påverka den ursprungliga arrayen.

123456789
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
copy

Note

Antalet element i den omformade arrayen måste vara detsamma som i den ursprungliga arrayen, så du kan inte använda en godtycklig form.

I vårt exempel, att omforma arrayen till en form av 3 rader och 4 kolumner (3 x 4) eller till en form av 2 block, varje innehållande 2 rader och 3 kolumner (2 x 2 x 3) resulterar fortfarande i totalt 12 element.

Omformning med -1

I NumPy, när du använder -1 i .reshape()-metoden, beräknar den automatiskt storleken på den dimensionen baserat på den ursprungliga arrayens storlek, samtidigt som det totala antalet element förblir detsamma.

Att använda .reshape(-1, 1) är särskilt användbart inom maskininlärning när vi behöver omforma en 1D-array till en 2D-array med en kolumn. Antalet rader i detta fall är lika med antalet element (beräknas automatiskt).

123456
import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
copy

Den omformade arrayen lagras som en 2D-array med 5 rader och 1 kolumn, med formen (5, 1). I kontrast har den ursprungliga 1D-arrayen formen (5,), vilket är en tupl med ett enda element. För vilken 1D-array som helst är formen alltid (n,), där n representerar antalet element.

numpy.reshape()

Funktionen reshape() i NumPy är identisk med .reshape()-metoden, men du bör skicka en array som dess första argument. För shape-parametern kan du skicka antingen en tupl av heltal eller ett enda heltal, t.ex. np.reshape(array, (3, 4)):

123456
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
copy
Uppgift

Swipe to start coding

Du har en sales_data_2021 array med simulerad kvartalsförsäljningsdata för två produkter under 2021. De första 4 elementen representerar kvartalsförsäljningen för den första produkten, och de sista 4 elementen representerar kvartalsförsäljningen för den andra produkten.

  1. Använd den lämpliga metoden för sales_data_2021 för att omforma den till en 2D-array.

  2. Den första raden ska innehålla kvartalsförsäljningen för den första produkten.

  3. Den andra raden ska innehålla kvartalsförsäljningen för den andra produkten.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4

Fråga AI

expand
ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

book
Omforma Arrayer

Omformning av arrayer i NumPy gör att du kan ändra formen på en array samtidigt som alla element bevaras. Det är en vanligt använd operation inom maskininlärning eftersom många funktioner och metoder i maskininlärningsbibliotek kräver att arrayer har en specifik form.

Arrayformer

Till exempel, en 1D-array med längden 5 har formen (5,), medan en 2D-array med 3 rader och 4 kolumner har formen (3, 4):

1234
import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
copy

ndarray.reshape()

NumPy-arrayer har en .reshape()-metod för att ändra form. Du behöver bara ange formen på den resulterande arrayen antingen som ett heltal, en tupl av heltal, eller heltal som separata argument.

Denna metod modifierar inte arrayen på plats, utan returnerar en ny array.

Notera

Faktum är att .reshape() returnerar en vy av den ursprungliga arrayen, så eventuella ändringar som görs på den omformade arrayen kommer också att påverka den ursprungliga arrayen.

123456789
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
copy

Note

Antalet element i den omformade arrayen måste vara detsamma som i den ursprungliga arrayen, så du kan inte använda en godtycklig form.

I vårt exempel, att omforma arrayen till en form av 3 rader och 4 kolumner (3 x 4) eller till en form av 2 block, varje innehållande 2 rader och 3 kolumner (2 x 2 x 3) resulterar fortfarande i totalt 12 element.

Omformning med -1

I NumPy, när du använder -1 i .reshape()-metoden, beräknar den automatiskt storleken på den dimensionen baserat på den ursprungliga arrayens storlek, samtidigt som det totala antalet element förblir detsamma.

Att använda .reshape(-1, 1) är särskilt användbart inom maskininlärning när vi behöver omforma en 1D-array till en 2D-array med en kolumn. Antalet rader i detta fall är lika med antalet element (beräknas automatiskt).

123456
import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
copy

Den omformade arrayen lagras som en 2D-array med 5 rader och 1 kolumn, med formen (5, 1). I kontrast har den ursprungliga 1D-arrayen formen (5,), vilket är en tupl med ett enda element. För vilken 1D-array som helst är formen alltid (n,), där n representerar antalet element.

numpy.reshape()

Funktionen reshape() i NumPy är identisk med .reshape()-metoden, men du bör skicka en array som dess första argument. För shape-parametern kan du skicka antingen en tupl av heltal eller ett enda heltal, t.ex. np.reshape(array, (3, 4)):

123456
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
copy
Uppgift

Swipe to start coding

Du har en sales_data_2021 array med simulerad kvartalsförsäljningsdata för två produkter under 2021. De första 4 elementen representerar kvartalsförsäljningen för den första produkten, och de sista 4 elementen representerar kvartalsförsäljningen för den andra produkten.

  1. Använd den lämpliga metoden för sales_data_2021 för att omforma den till en 2D-array.

  2. Den första raden ska innehålla kvartalsförsäljningen för den första produkten.

  3. Den andra raden ska innehålla kvartalsförsäljningen för den andra produkten.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4
Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Vi beklagar att något gick fel. Vad hände?
some-alt