Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tildeling af Værdier til Indekserede Underarrayer | Indeksering og Udskæring
Numpy-Grundlæggende

bookTildeling af Værdier til Indekserede Underarrayer

Med indekserede arrays bliver tingene mere interessante. Her fokuseres der på 1D- og 2D-delarrays, da 3D-delarrays sjældent anvendes i praksis.

Lad os først se på tildeling af værdier til slices. Den generelle syntaks ser således ud: slice = values, hvor slice er et udsnit af et bestemt array, og values er de værdier, der skal tildeles.

Mulige formater for values:

  • en enkelt skalar (tal);
  • et 1D-array af samme størrelse som udsnittet (hvis det er 1D); eller størrelsen af den anden dimension (hvis udsnittet er 2D);
  • et 2D-array med samme form som et 2D-uds nit.
123456789101112131415161718
import numpy as np array_1d = np.array([1, 4, 6, 2, 9]) # Assigning an array to the slice of array_1d array_1d[1:-1] = np.array([3, 5, 7]) print(array_1d) # Assigning a scalar to the slice of array_1d array_1d[1:-1] = 5 print(array_1d) array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) # Assigning a 2D array to the slice of array_2d array_2d[1:3, 1:] = np.array([[20, 21], [40, 41]]) print(array_2d) # Assigning a 1D array to the slice of array_2d array_2d[1:3, 1:] = [50, 51] print(array_2d) # Assigning a scalar to the slice of array_2d array_2d[1:3, 1:] = 30 print(array_2d)
copy

Når der tildeles en skalar til et 1D-uds nit, tildeles denne skalar til hver enkelt element i udsnittet. Når et 1D-array tildeles et 2D-uds nit, tildeles dette 1D-array til hver 1D-array i udsnittet. Tildeling af en skalar til et 2D-uds nit fungerer på samme måde som ved et 1D-uds nit.

Tildeling af værdier til heltalsarray-indekserede delarrays fungerer på samme måde som med slices. Tildeling af værdier til boolesk-indekserede delarrays fungerer på samme måde som med 1D-slices.

Opgave

Swipe to start coding

Du administrerer et datasæt med produktpriser og bedømmelser. Priserne er gemt i arrayet prices, og bedømmelserne (ud af 10) er gemt i arrayet ratings. Din opgave er at opdatere dem baseret på specifikke kriterier:

  1. Tildel værdien 20 til hvert element i prices, der er større end 10, ved hjælp af en skalar.
  2. Tildel et NumPy-array med elementerne 9, 8 til de sidste to elementer i anden række af ratings. Brug en positiv rækkeindeks og slicing.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 10
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

bookTildeling af Værdier til Indekserede Underarrayer

Stryg for at vise menuen

Med indekserede arrays bliver tingene mere interessante. Her fokuseres der på 1D- og 2D-delarrays, da 3D-delarrays sjældent anvendes i praksis.

Lad os først se på tildeling af værdier til slices. Den generelle syntaks ser således ud: slice = values, hvor slice er et udsnit af et bestemt array, og values er de værdier, der skal tildeles.

Mulige formater for values:

  • en enkelt skalar (tal);
  • et 1D-array af samme størrelse som udsnittet (hvis det er 1D); eller størrelsen af den anden dimension (hvis udsnittet er 2D);
  • et 2D-array med samme form som et 2D-uds nit.
123456789101112131415161718
import numpy as np array_1d = np.array([1, 4, 6, 2, 9]) # Assigning an array to the slice of array_1d array_1d[1:-1] = np.array([3, 5, 7]) print(array_1d) # Assigning a scalar to the slice of array_1d array_1d[1:-1] = 5 print(array_1d) array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) # Assigning a 2D array to the slice of array_2d array_2d[1:3, 1:] = np.array([[20, 21], [40, 41]]) print(array_2d) # Assigning a 1D array to the slice of array_2d array_2d[1:3, 1:] = [50, 51] print(array_2d) # Assigning a scalar to the slice of array_2d array_2d[1:3, 1:] = 30 print(array_2d)
copy

Når der tildeles en skalar til et 1D-uds nit, tildeles denne skalar til hver enkelt element i udsnittet. Når et 1D-array tildeles et 2D-uds nit, tildeles dette 1D-array til hver 1D-array i udsnittet. Tildeling af en skalar til et 2D-uds nit fungerer på samme måde som ved et 1D-uds nit.

Tildeling af værdier til heltalsarray-indekserede delarrays fungerer på samme måde som med slices. Tildeling af værdier til boolesk-indekserede delarrays fungerer på samme måde som med 1D-slices.

Opgave

Swipe to start coding

Du administrerer et datasæt med produktpriser og bedømmelser. Priserne er gemt i arrayet prices, og bedømmelserne (ud af 10) er gemt i arrayet ratings. Din opgave er at opdatere dem baseret på specifikke kriterier:

  1. Tildel værdien 20 til hvert element i prices, der er større end 10, ved hjælp af en skalar.
  2. Tildel et NumPy-array med elementerne 9, 8 til de sidste to elementer i anden række af ratings. Brug en positiv rækkeindeks og slicing.

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 2. Kapitel 10
single

single

some-alt