Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Tilldela Värden till Indexerade Delarrayer | Indexering och Skivning
Ultimata NumPy

bookTilldela Värden till Indexerade Delarrayer

Med indexerade arrayer blir det mer intressant. Här fokuserar vi på 1D- och 2D-delarrayer, eftersom 3D-delarrayer sällan används i praktiken.

Vi börjar 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 skalär (tal);
  • 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.
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 tilldelar en skalär till en 1D-skiva, tilldelas denna skalär 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 skalär till en 2D-skiva fungerar på samma sätt som med en 1D-skiva.

Att tilldela värden till heltalsindexerade delarrayer fungerar på samma sätt som med skivor. Att tilldela värden till booleskt indexerade delarrayer fungerar på samma sätt som med 1D-skivor.

Uppgift

Swipe to start coding

Du hanterar en datamängd med produktpriser och betyg. Priserna lagras i arrayen prices, och betygen (av 10) lagras i arrayen ratings, där varje rad representerar en olika produktkategori. Din uppgift är att uppdatera priser och betyg baserat på specifika kriterier:

  1. Tilldela värdet 20 till varje element i prices som är större än 10 (boolesk indexering) med hjälp av en skalär.
  2. Tilldela en NumPy-array med elementen 9, 8 till de två sista elementen i den andra raden (andra 1D-arrayen) av ratings. Använd ett positivt radindex och en slice som endast anger start (positivt index).

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 10
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 3.7

bookTilldela Värden till Indexerade Delarrayer

Svep för att visa menyn

Med indexerade arrayer blir det mer intressant. Här fokuserar vi på 1D- och 2D-delarrayer, eftersom 3D-delarrayer sällan används i praktiken.

Vi börjar 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 skalär (tal);
  • 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.
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 tilldelar en skalär till en 1D-skiva, tilldelas denna skalär 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 skalär till en 2D-skiva fungerar på samma sätt som med en 1D-skiva.

Att tilldela värden till heltalsindexerade delarrayer fungerar på samma sätt som med skivor. Att tilldela värden till booleskt indexerade delarrayer fungerar på samma sätt som med 1D-skivor.

Uppgift

Swipe to start coding

Du hanterar en datamängd med produktpriser och betyg. Priserna lagras i arrayen prices, och betygen (av 10) lagras i arrayen ratings, där varje rad representerar en olika produktkategori. Din uppgift är att uppdatera priser och betyg baserat på specifika kriterier:

  1. Tilldela värdet 20 till varje element i prices som är större än 10 (boolesk indexering) med hjälp av en skalär.
  2. Tilldela en NumPy-array med elementen 9, 8 till de två sista elementen i den andra raden (andra 1D-arrayen) av ratings. Använd ett positivt radindex och en slice som endast anger start (positivt index).

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 10
single

single

some-alt