Omformning 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
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):
1234import 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)
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.
Faktisk returnerer .reshape() en visning af det oprindelige array, så alle ændringer foretaget på det omformede array vil også påvirke det oprindelige array.
123456789import 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)
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).
123456import 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)
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)):
123456import 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)
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.
- Brug den relevante metode på
sales_data_2021til at omforme det til et 2D-array. - Den første række skal indeholde kvartalssalget for det første produkt.
- Den anden række skal indeholde kvartalssalget for det andet produkt.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 3.7
Omformning 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
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):
1234import 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)
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.
Faktisk returnerer .reshape() en visning af det oprindelige array, så alle ændringer foretaget på det omformede array vil også påvirke det oprindelige array.
123456789import 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)
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).
123456import 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)
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)):
123456import 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)
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.
- Brug den relevante metode på
sales_data_2021til at omforme det til et 2D-array. - Den første række skal indeholde kvartalssalget for det første produkt.
- Den anden række skal indeholde kvartalssalget for det andet produkt.
Løsning
Tak for dine kommentarer!
single