Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Omformning af Arrays | Almindeligt Anvendte NumPy-Funktioner
Ultimate NumPy

bookOmformning af Arrays

Omformning af arrays i NumPy gør det muligt at ændre formen på et array, mens alle elementer bevares. Det er en ofte anvendt operation inden for maskinlæring, da mange funktioner og metoder i maskinlæringsbiblioteker kræver, at arrays har en bestemt form.

Array-former

Note
Definition

Formen på et NumPy-array er en tuple, der angiver antallet af elementer langs hver dimension (akse).

For eksempel har et 1D-array med længden 5 formen (5,), mens et 2D-array med 3 rækker og 4 kolonner 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-arrays har en .reshape()-metode til omformning. Det er kun nødvendigt at angive formen på det resulterende array enten som et heltal, en tuple af heltal eller heltal som separate argumenter.

Denne metode ændrer ikke arrayet in place, men returnerer et nyt array.

Note
Bemærk

Faktisk returnerer .reshape() en visning af det oprindelige array, så alle ændringer foretaget på det omformede array vil også påvirke det oprindelige array.

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
Bemærk

Antallet af elementer i det omformede array skal være det samme som i det oprindelige array, så du kan ikke angive en vilkårlig form.

I vores eksempel giver omformning af arrayet til en form med 3 rækker og 4 kolonner (3x4) eller til en form med 2 blokke, hver indeholdende 2 rækker og 3 kolonner (2x2x3) stadig et samlet antal på 12 elementer.

Omformning med -1

I NumPy beregner brugen af -1 i .reshape()-metoden automatisk størrelsen af den dimension baseret på det oprindelige arrays størrelse, mens det samlede antal elementer forbliver det samme.

Brug af .reshape(-1, 1) er særligt nyttigt i maskinlæring, når et 1D-array skal omformes til et 2D-array med én kolonne. Antallet af rækker i dette tilfælde svarer til antallet af elementer (beregnes automatisk).

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

Det omformede array gemmes som et 2D-array med 5 rækker og 1 kolonne, med formen (5, 1). Til sammenligning har det oprindelige 1D-array formen (5,), hvilket er et tuple med ét element. For ethvert 1D-array er formen altid (n,), hvor n angiver antallet af elementer.

numpy.reshape()

Funktionen reshape() i NumPy er identisk med .reshape()-metoden, men du skal angive et array som det første argument. For parameteren shape kan du angive enten et tuple af heltal eller et enkelt heltal, f.eks. 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
Opgave

Swipe to start coding

Du har et sales_data_2021 array med simulerede kvartalsvise salgstal for to produkter i 2021. De første 4 elementer repræsenterer kvartalssalget for det første produkt, og de sidste 4 elementer repræsenterer kvartalssalget for det andet produkt.

  1. Brug den relevante metodesales_data_2021 til at omforme det til et 2D-array.
  2. Den første række skal indeholde kvartalssalget for det første produkt.
  3. Den anden række skal indeholde kvartalssalget for det andet produkt.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

Awesome!

Completion rate improved to 3.7

bookOmformning af Arrays

Stryg for at vise menuen

Omformning af arrays i NumPy gør det muligt at ændre formen på et array, mens alle elementer bevares. Det er en ofte anvendt operation inden for maskinlæring, da mange funktioner og metoder i maskinlæringsbiblioteker kræver, at arrays har en bestemt form.

Array-former

Note
Definition

Formen på et NumPy-array er en tuple, der angiver antallet af elementer langs hver dimension (akse).

For eksempel har et 1D-array med længden 5 formen (5,), mens et 2D-array med 3 rækker og 4 kolonner 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-arrays har en .reshape()-metode til omformning. Det er kun nødvendigt at angive formen på det resulterende array enten som et heltal, en tuple af heltal eller heltal som separate argumenter.

Denne metode ændrer ikke arrayet in place, men returnerer et nyt array.

Note
Bemærk

Faktisk returnerer .reshape() en visning af det oprindelige array, så alle ændringer foretaget på det omformede array vil også påvirke det oprindelige array.

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
Bemærk

Antallet af elementer i det omformede array skal være det samme som i det oprindelige array, så du kan ikke angive en vilkårlig form.

I vores eksempel giver omformning af arrayet til en form med 3 rækker og 4 kolonner (3x4) eller til en form med 2 blokke, hver indeholdende 2 rækker og 3 kolonner (2x2x3) stadig et samlet antal på 12 elementer.

Omformning med -1

I NumPy beregner brugen af -1 i .reshape()-metoden automatisk størrelsen af den dimension baseret på det oprindelige arrays størrelse, mens det samlede antal elementer forbliver det samme.

Brug af .reshape(-1, 1) er særligt nyttigt i maskinlæring, når et 1D-array skal omformes til et 2D-array med én kolonne. Antallet af rækker i dette tilfælde svarer til antallet af elementer (beregnes automatisk).

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

Det omformede array gemmes som et 2D-array med 5 rækker og 1 kolonne, med formen (5, 1). Til sammenligning har det oprindelige 1D-array formen (5,), hvilket er et tuple med ét element. For ethvert 1D-array er formen altid (n,), hvor n angiver antallet af elementer.

numpy.reshape()

Funktionen reshape() i NumPy er identisk med .reshape()-metoden, men du skal angive et array som det første argument. For parameteren shape kan du angive enten et tuple af heltal eller et enkelt heltal, f.eks. 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
Opgave

Swipe to start coding

Du har et sales_data_2021 array med simulerede kvartalsvise salgstal for to produkter i 2021. De første 4 elementer repræsenterer kvartalssalget for det første produkt, og de sidste 4 elementer repræsenterer kvartalssalget for det andet produkt.

  1. Brug den relevante metodesales_data_2021 til at omforme det til et 2D-array.
  2. Den første række skal indeholde kvartalssalget for det første produkt.
  3. Den anden række skal indeholde kvartalssalget for det andet produkt.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
single

single

some-alt