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
Ultimate NumPy

bookTildeling af Værdier til Indekserede Underarrayer

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

Lad os først begynde med at tildele 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-udsnit.
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 vi tildeler en skalar til et 1D-udsnit, tildeles denne skalar til hver enkelt element i udsnittet. Når et 1D-array tildeles et 2D-udsnit, tildeles dette 1D-array til hver 1D-array i udsnittet. Tildeling af en skalar til et 2D-udsnit fungerer på samme måde som med et 1D-udsnit.

Tildeling af værdier til heltalsindekserede del-arrays fungerer på samme måde som med slices. Tildeling af værdier til boolesk-indekserede del-arrays 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 prices-arrayet, og bedømmelserne (ud af 10) er gemt i ratings-arrayet, hvor hver række repræsenterer en forskellig produktkategori. Din opgave er at opdatere priser og bedømmelser baseret på specifikke kriterier:

  1. Tildel værdien 20 til hvert element i prices, der er større end 10 (boolesk indeksering) ved brug af en skalar.
  2. Tildel et NumPy-array med elementerne 9, 8 til de to sidste elementer i anden række (anden 1D-array) af ratings. Brug et positivt rækkeindeks og et slice, der kun angiver start (positivt indeks).

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

Suggested prompts:

Can you explain what happens if the shapes of the assigned values and the slice don't match?

Can you show more examples of assigning values to slices using boolean indexing?

What is the difference between assigning a 1D array and a 2D array to a 2D slice?

close

Awesome!

Completion rate improved to 3.7

bookTildeling af Værdier til Indekserede Underarrayer

Stryg for at vise menuen

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

Lad os først begynde med at tildele 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-udsnit.
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 vi tildeler en skalar til et 1D-udsnit, tildeles denne skalar til hver enkelt element i udsnittet. Når et 1D-array tildeles et 2D-udsnit, tildeles dette 1D-array til hver 1D-array i udsnittet. Tildeling af en skalar til et 2D-udsnit fungerer på samme måde som med et 1D-udsnit.

Tildeling af værdier til heltalsindekserede del-arrays fungerer på samme måde som med slices. Tildeling af værdier til boolesk-indekserede del-arrays 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 prices-arrayet, og bedømmelserne (ud af 10) er gemt i ratings-arrayet, hvor hver række repræsenterer en forskellig produktkategori. Din opgave er at opdatere priser og bedømmelser baseret på specifikke kriterier:

  1. Tildel værdien 20 til hvert element i prices, der er større end 10 (boolesk indeksering) ved brug af en skalar.
  2. Tildel et NumPy-array med elementerne 9, 8 til de to sidste elementer i anden række (anden 1D-array) af ratings. Brug et positivt rækkeindeks og et slice, der kun angiver start (positivt indeks).

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