Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Omformning av Arrayer | Vanligt Använda NumPy-Funktioner
Quizzes & Challenges
Quizzes
Challenges
/
Numpy-Grunder

bookOmformning av Arrayer

Omarbetning av arrayer i NumPy möjliggör att ändra formen på en array utan att förlora några element. Detta är en vanligt förekommande operation inom maskininlärning eftersom många funktioner och metoder i maskininlärningsbibliotek kräver att arrayer har en specifik form.

Arrayformer

Note
Definition

Formen på en NumPy-array är en tuple som anger antalet element längs varje dimension (axel).

Till exempel har en endimensionell array med längd 5 formen (5,), medan en tvådimensionell 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 omformning. Du behöver bara ange formen på den resulterande arrayen antingen som ett heltal, en tuple av heltal, eller heltal som separata argument.

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

Note
Observera

Faktum är att .reshape() returnerar en vy av den ursprungliga arrayen, så alla ändringar som görs i den omformade arrayen påverkar även 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
Observera

Antalet element i den omformade arrayen måste vara detsamma som i den ursprungliga arrayen, så det går inte att ange en godtycklig form.

I vårt exempel, omformning av arrayen till en form med 3 rader och 4 kolumner (3x4) eller till en form med 2 block, där varje block innehåller 2 rader och 3 kolumner (2x2x3) resulterar fortfarande i totalt 12 element.

Omformning med -1

I NumPy, när du använder -1 i metoden .reshape(), beräknas storleken på den dimensionen automatiskt 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 endimensionell array till en tvådimensionell 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). Däremot har den ursprungliga 1D-arrayen formen (5,), vilket är en tuple med ett enda element. För alla 1D-arrayer är formen alltid (n,), där n representerar antalet element.

numpy.reshape()

Funktionen reshape() i NumPy är identisk med metoden .reshape(), men du ska ange en array som dess första argument. För parametern shape kan du ange antingen en tuple av heltal eller ett enskilt 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 array sales_data_2021 med simulerad kvartalsförsäljning 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 lämplig metod 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

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4
single

single

Fråga AI

expand

Fråga AI

ChatGPT

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

Suggested prompts:

Can you explain the difference between using .reshape() and np.reshape()?

What happens if I try to reshape an array to a shape that doesn't match the total number of elements?

Can you give more examples of reshaping arrays with different dimensions?

close

bookOmformning av Arrayer

Svep för att visa menyn

Omarbetning av arrayer i NumPy möjliggör att ändra formen på en array utan att förlora några element. Detta är en vanligt förekommande operation inom maskininlärning eftersom många funktioner och metoder i maskininlärningsbibliotek kräver att arrayer har en specifik form.

Arrayformer

Note
Definition

Formen på en NumPy-array är en tuple som anger antalet element längs varje dimension (axel).

Till exempel har en endimensionell array med längd 5 formen (5,), medan en tvådimensionell 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 omformning. Du behöver bara ange formen på den resulterande arrayen antingen som ett heltal, en tuple av heltal, eller heltal som separata argument.

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

Note
Observera

Faktum är att .reshape() returnerar en vy av den ursprungliga arrayen, så alla ändringar som görs i den omformade arrayen påverkar även 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
Observera

Antalet element i den omformade arrayen måste vara detsamma som i den ursprungliga arrayen, så det går inte att ange en godtycklig form.

I vårt exempel, omformning av arrayen till en form med 3 rader och 4 kolumner (3x4) eller till en form med 2 block, där varje block innehåller 2 rader och 3 kolumner (2x2x3) resulterar fortfarande i totalt 12 element.

Omformning med -1

I NumPy, när du använder -1 i metoden .reshape(), beräknas storleken på den dimensionen automatiskt 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 endimensionell array till en tvådimensionell 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). Däremot har den ursprungliga 1D-arrayen formen (5,), vilket är en tuple med ett enda element. För alla 1D-arrayer är formen alltid (n,), där n representerar antalet element.

numpy.reshape()

Funktionen reshape() i NumPy är identisk med metoden .reshape(), men du ska ange en array som dess första argument. För parametern shape kan du ange antingen en tuple av heltal eller ett enskilt 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 array sales_data_2021 med simulerad kvartalsförsäljning 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 lämplig metod 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
single

single

some-alt