Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tilordne Verdier til Indekserte Subarrays | Indeksering og Slicing
Ultimate NumPy

Sveip for å vise menyen

book
Tilordne Verdier til Indekserte Subarrays

Med indekserte matriser begynner ting å bli mer interessante. Her vil vi fokusere på 1D og 2D delmatriser, da 3D delmatriser sjelden brukes i praksis.

La oss først begynne med å tilordne verdier til utdrag. Den generelle syntaksen ser slik ut: slice = values, hvor slice er et utdrag av en bestemt matrise og values er verdiene som skal tilordnes.

Mulige formater for values:

  • en enkel skalar (tall);

  • en 1D matrise av samme størrelse som utdraget (hvis det er 1D); eller størrelsen på den andre dimensjonen (hvis utdraget er 2D);

  • en 2D matrise av samme form som et 2D utdrag.

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-utvalg, blir denne skalar tildelt til hvert element i utvalget. Når en 1D-array tildeles til et 2D-utvalg, blir denne 1D-array tildelt til hver 1D-array i utvalget. Å tildele en skalar til et 2D-utvalg fungerer på samme måte som med et 1D-utvalg.

Å tildele verdier til heltallsindekserte underarrayer fungerer på samme måte som med utvalg. Å tildele verdier til boolske indekserte underarrayer fungerer på samme måte som med 1D-utvalg.

Oppgave

Swipe to start coding

Du administrerer et datasett med produktpriser og vurderinger. Prisene er lagret i prices-arrayen, og vurderingene (av 10) er lagret i ratings-arrayen, hvor hver rad representerer en forskjellig produktkategori. Din oppgave er å oppdatere prisene og vurderingene basert på spesifikke kriterier:

  1. Tildel verdien 20 til hvert element i prices som er større enn 10 (boolsk indeksering) ved å bruke en skalar.
  2. Tildel en NumPy-array med elementene 9, 8 til de to siste elementene i den andre raden (andre 1D-array) av ratings. Bruk en positiv radindeks og et utvalg som bare spesifiserer start (positiv indeks).

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 10
Vi beklager at noe gikk galt. Hva skjedde?

Spør AI

expand
ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

book
Tilordne Verdier til Indekserte Subarrays

Med indekserte matriser begynner ting å bli mer interessante. Her vil vi fokusere på 1D og 2D delmatriser, da 3D delmatriser sjelden brukes i praksis.

La oss først begynne med å tilordne verdier til utdrag. Den generelle syntaksen ser slik ut: slice = values, hvor slice er et utdrag av en bestemt matrise og values er verdiene som skal tilordnes.

Mulige formater for values:

  • en enkel skalar (tall);

  • en 1D matrise av samme størrelse som utdraget (hvis det er 1D); eller størrelsen på den andre dimensjonen (hvis utdraget er 2D);

  • en 2D matrise av samme form som et 2D utdrag.

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-utvalg, blir denne skalar tildelt til hvert element i utvalget. Når en 1D-array tildeles til et 2D-utvalg, blir denne 1D-array tildelt til hver 1D-array i utvalget. Å tildele en skalar til et 2D-utvalg fungerer på samme måte som med et 1D-utvalg.

Å tildele verdier til heltallsindekserte underarrayer fungerer på samme måte som med utvalg. Å tildele verdier til boolske indekserte underarrayer fungerer på samme måte som med 1D-utvalg.

Oppgave

Swipe to start coding

Du administrerer et datasett med produktpriser og vurderinger. Prisene er lagret i prices-arrayen, og vurderingene (av 10) er lagret i ratings-arrayen, hvor hver rad representerer en forskjellig produktkategori. Din oppgave er å oppdatere prisene og vurderingene basert på spesifikke kriterier:

  1. Tildel verdien 20 til hvert element i prices som er større enn 10 (boolsk indeksering) ved å bruke en skalar.
  2. Tildel en NumPy-array med elementene 9, 8 til de to siste elementene i den andre raden (andre 1D-array) av ratings. Bruk en positiv radindeks og et utvalg som bare spesifiserer start (positiv indeks).

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 10
Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Vi beklager at noe gikk galt. Hva skjedde?
some-alt