Tilldela Värden till Indexerade Delarrayer
Med indexerade arrayer börjar saker och ting bli mer intressanta. Här kommer vi att fokusera på 1D och 2D delarrayer, eftersom 3D delarrayer sällan används i praktiken.
Låt oss först börja med att tilldela värden till skivor. Den allmänna syntaxen ser ut så här: slice = values
, där slice
är en skiva av en viss array och values
är de värden som ska tilldelas.
Möjliga format för values
:
- en enskild skalar (nummer);
- en 1D array av samma storlek som skivan (om den är 1D); eller storleken på den andra dimensionen (om skivan är 2D);
- en 2D array av samma form som en 2D skiva.
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 tilldelar en skalar till en 1D-skiva, tilldelas denna skalar till varje element i skivan. När en 1D-array tilldelas en 2D-skiva, tilldelas denna 1D-array till varje 1D-array i skivan. Att tilldela en skalar till en 2D-skiva fungerar på samma sätt som med en 1D-skiva.
Att tilldela värden till heltal array indexerade delarrayer fungerar på samma sätt som med skivor. Att tilldela värden till boolean indexerade delarrayer fungerar på samma sätt som med 1D-skivor.
Swipe to start coding
Du hanterar en dataset av produktpriser och betyg. Priserna lagras i prices
arrayen, och betygen (av 10) lagras i ratings
arrayen, där varje rad representerar en olika produktkategori. Din uppgift är att uppdatera priserna och betygen baserat på specifika kriterier:
- Tilldela värdet
20
till varje element iprices
som är större än 10 (boolean indexering) med en skalar. - Tilldela en NumPy array med elementen
9
,8
till de sista två elementen i den andra raden (andra 1D-arrayen) avratings
. Använd en positiv radindex och en skiva som endast specificerarstart
(positiv index).
Lösning
Tack för dina kommentarer!