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 Subarrays | Indeksering og Skæring
Ultimativ NumPy

Stryg for at vise menuen

book
Tildeling af Værdier til Indekserede Subarrays

Med indekserede arrays begynder tingene at blive mere interessante. Her vil vi fokusere på 1D og 2D underarrays, da 3D underarrays sjældent bruges i praksis.

Lad os først starte med at tildele værdier til slices. Den generelle syntaks ser sådan ud: slice = values, hvor slice er en slice af en bestemt array og values er de værdier, der skal tildeles.

Mulige formater for values:

  • en enkelt skalar (tal);

  • en 1D array af samme størrelse som slicen (hvis den er 1D); eller størrelsen af den anden dimension (hvis slicen er 2D);

  • en 2D array af samme form som en 2D slice.

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 element i udsnittet. Når en 1D-array tildeles til et 2D-udsnit, tildeles denne 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 heltalsarray-indekserede underarrays fungerer på samme måde som med udsnit. Tildeling af værdier til boolesk indekserede underarrays fungerer på samme måde som med 1D-udsnit.

Opgave

Swipe to start coding

Du administrerer et datasæt af produktpriser og vurderinger. Priserne er gemt i prices arrayet, og vurderingerne (ud af 10) er gemt i ratings arrayet, hvor hver række repræsenterer en forskellig produktkategori. Din opgave er at opdatere priserne og vurderingerne baseret på specifikke kriterier:

  1. Tildel værdien 20 til hvert element i prices større end 10 (boolesk indeksering) ved hjælp af en skalar.
  2. Tildel en NumPy array med elementerne 9, 8 til de sidste to elementer i den anden række (anden 1D-array) af ratings. Brug en positiv rækkeindeks og et udsnit der kun specificerer start (positiv 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
Vi beklager, at noget gik galt. Hvad skete der?

Spørg AI

expand
ChatGPT

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

book
Tildeling af Værdier til Indekserede Subarrays

Med indekserede arrays begynder tingene at blive mere interessante. Her vil vi fokusere på 1D og 2D underarrays, da 3D underarrays sjældent bruges i praksis.

Lad os først starte med at tildele værdier til slices. Den generelle syntaks ser sådan ud: slice = values, hvor slice er en slice af en bestemt array og values er de værdier, der skal tildeles.

Mulige formater for values:

  • en enkelt skalar (tal);

  • en 1D array af samme størrelse som slicen (hvis den er 1D); eller størrelsen af den anden dimension (hvis slicen er 2D);

  • en 2D array af samme form som en 2D slice.

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 element i udsnittet. Når en 1D-array tildeles til et 2D-udsnit, tildeles denne 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 heltalsarray-indekserede underarrays fungerer på samme måde som med udsnit. Tildeling af værdier til boolesk indekserede underarrays fungerer på samme måde som med 1D-udsnit.

Opgave

Swipe to start coding

Du administrerer et datasæt af produktpriser og vurderinger. Priserne er gemt i prices arrayet, og vurderingerne (ud af 10) er gemt i ratings arrayet, hvor hver række repræsenterer en forskellig produktkategori. Din opgave er at opdatere priserne og vurderingerne baseret på specifikke kriterier:

  1. Tildel værdien 20 til hvert element i prices større end 10 (boolesk indeksering) ved hjælp af en skalar.
  2. Tildel en NumPy array med elementerne 9, 8 til de sidste to elementer i den anden række (anden 1D-array) af ratings. Brug en positiv rækkeindeks og et udsnit der kun specificerer start (positiv 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
Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Vi beklager, at noget gik galt. Hvad skete der?
some-alt