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.
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)
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.
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:
- Tildel verdien
20
til hvert element iprices
som er større enn 10 (boolsk indeksering) ved å bruke en skalar. - Tildel en NumPy-array med elementene
9
,8
til de to siste elementene i den andre raden (andre 1D-array) avratings
. Bruk en positiv radindeks og et utvalg som bare spesifisererstart
(positiv indeks).
Løsning
Takk for tilbakemeldingene dine!