Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Arvojen Asettaminen Indeksoituihin Osataulukoihin | Indeksointi ja Viipalointi
Ultimate NumPy

bookArvojen Asettaminen Indeksoituihin Osataulukoihin

Indeksoitujen taulukoiden kanssa asiat muuttuvat mielenkiintoisemmiksi. Tässä keskitytään 1D- ja 2D-osataulukoihin, sillä 3D-osataulukoita käytetään harvoin käytännössä.

Aloitetaan arvojen asettamisesta viipaleille. Yleinen syntaksi on seuraava: slice = values, missä slice on tietyn taulukon viipale ja values ovat asetettavat arvot.

Mahdolliset values-muodot:

  • Yksittäinen skalaari (luku);
  • 1D-taulukko, jonka koko vastaa viipaletta (jos se on 1D); tai toisen ulottuvuuden koko (jos viipale on 2D);
  • 2D-taulukko, jonka muoto vastaa 2D-viipaletta.
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

Kun asetetaan skalaari 1D-viipaleelle, tämä skalaari asetetaan jokaiselle viipaleen alkiolle. Kun 1D-taulukko asetetaan 2D-viipaleelle, tämä 1D-taulukko asetetaan jokaiselle 1D-taulukolle viipaleessa. Skalaariarvon asettaminen 2D-viipaleelle toimii samalla tavalla kuin 1D-viipaleella.

Arvojen asettaminen kokonaislukutaulukolla indeksoituihin osataulukoihin toimii samalla tavalla kuin viipaleilla. Arvojen asettaminen totuusarvotaulukolla indeksoituihin osataulukoihin toimii samalla tavalla kuin 1D-viipaleilla.

Tehtävä

Swipe to start coding

Hallitset tuotehintojen ja -arvostelujen tietojoukkoa. Hinnat tallennetaan prices-taulukkoon ja arvostelut (asteikolla 10) tallennetaan ratings-taulukkoon, jossa jokainen rivi edustaa eri tuotekategoriaa. Tehtävänäsi on päivittää hinnat ja arvostelut tiettyjen kriteerien perusteella:

  1. Aseta arvo 20 kaikkiin prices-taulukon alkioihin, joiden arvo on suurempi kuin 10 (looginen indeksointi) käyttäen skalaaria.
  2. Aseta NumPy-taulukko, jonka alkiot ovat 9, 8, ratings-taulukon toisen rivin (toinen 1D-taulukko) kahteen viimeiseen alkioon. Käytä positiivista rivi-indeksiä ja viipaletta, jossa määritetään vain start (positiivinen indeksi).

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 10
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

Awesome!

Completion rate improved to 3.7

bookArvojen Asettaminen Indeksoituihin Osataulukoihin

Pyyhkäise näyttääksesi valikon

Indeksoitujen taulukoiden kanssa asiat muuttuvat mielenkiintoisemmiksi. Tässä keskitytään 1D- ja 2D-osataulukoihin, sillä 3D-osataulukoita käytetään harvoin käytännössä.

Aloitetaan arvojen asettamisesta viipaleille. Yleinen syntaksi on seuraava: slice = values, missä slice on tietyn taulukon viipale ja values ovat asetettavat arvot.

Mahdolliset values-muodot:

  • Yksittäinen skalaari (luku);
  • 1D-taulukko, jonka koko vastaa viipaletta (jos se on 1D); tai toisen ulottuvuuden koko (jos viipale on 2D);
  • 2D-taulukko, jonka muoto vastaa 2D-viipaletta.
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

Kun asetetaan skalaari 1D-viipaleelle, tämä skalaari asetetaan jokaiselle viipaleen alkiolle. Kun 1D-taulukko asetetaan 2D-viipaleelle, tämä 1D-taulukko asetetaan jokaiselle 1D-taulukolle viipaleessa. Skalaariarvon asettaminen 2D-viipaleelle toimii samalla tavalla kuin 1D-viipaleella.

Arvojen asettaminen kokonaislukutaulukolla indeksoituihin osataulukoihin toimii samalla tavalla kuin viipaleilla. Arvojen asettaminen totuusarvotaulukolla indeksoituihin osataulukoihin toimii samalla tavalla kuin 1D-viipaleilla.

Tehtävä

Swipe to start coding

Hallitset tuotehintojen ja -arvostelujen tietojoukkoa. Hinnat tallennetaan prices-taulukkoon ja arvostelut (asteikolla 10) tallennetaan ratings-taulukkoon, jossa jokainen rivi edustaa eri tuotekategoriaa. Tehtävänäsi on päivittää hinnat ja arvostelut tiettyjen kriteerien perusteella:

  1. Aseta arvo 20 kaikkiin prices-taulukon alkioihin, joiden arvo on suurempi kuin 10 (looginen indeksointi) käyttäen skalaaria.
  2. Aseta NumPy-taulukko, jonka alkiot ovat 9, 8, ratings-taulukon toisen rivin (toinen 1D-taulukko) kahteen viimeiseen alkioon. Käytä positiivista rivi-indeksiä ja viipaletta, jossa määritetään vain start (positiivinen indeksi).

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 10
single

single

some-alt