Tildeling 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.
123456789101112131415161718import 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 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.
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:
- Tildel værdien
20til hvert element iprices, der er større end 10, ved hjælp af en skalar. - Tildel et NumPy-array med elementerne
9,8til de sidste to elementer i anden række afratings. Brug en positiv rækkeindeks og slicing.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 3.85
Tildeling 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.
123456789101112131415161718import 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 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.
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:
- Tildel værdien
20til hvert element iprices, der er større end 10, ved hjælp af en skalar. - Tildel et NumPy-array med elementerne
9,8til de sidste to elementer i anden række afratings. Brug en positiv rækkeindeks og slicing.
Løsning
Tak for dine kommentarer!
single