Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele 2D-Taulukoiden Lajittelu | Yleisesti Käytetyt NumPy-Funktiot
Lopullinen NumPy

book
2D-Taulukoiden Lajittelu

Kuten näet, yksinkertaisesti antamalla 2D-taulukkomme sort()-funktiolle, se lajittelee jokaisen 1D-taulukon akselin 1 mukaan (mikä on oletusvaihtoehto 2D-taulukossa). Asettamalla axis=0 lajittelee jokaisen 1D-taulukon akselin 0 mukaan (jokainen sarake).

Asettamalla axis=None palauttaa jatkuvan lajitellun 1D-taulukon kaikista 2D-taulukon elementeistä.

import numpy as np
array_2d = np.array([[2, 9, 3], [1, 6, 4], [5, 7, 8]])
# Sorting a 2D array along axis 1
print(np.sort(array_2d))
# Sorting a 2D array along axis 0
print(np.sort(array_2d, axis=0))
# Creating a 1D sorted array out of the elements of array_2d
print(np.sort(array_2d, axis=None))
12345678
import numpy as np array_2d = np.array([[2, 9, 3], [1, 6, 4], [5, 7, 8]]) # Sorting a 2D array along axis 1 print(np.sort(array_2d)) # Sorting a 2D array along axis 0 print(np.sort(array_2d, axis=0)) # Creating a 1D sorted array out of the elements of array_2d print(np.sort(array_2d, axis=None))
copy

2D-taulukoiden lajittelu laskevassa järjestyksessä

Kun lajittelet 2D-taulukoita laskevassa järjestyksessä tietyn akselin mukaan, sinun on käytettävä kahta viipaletta: yksi täysi viipale ([:]) ja toinen negatiivisella askeleella ([::-1]). Viipaleen, jossa on negatiivinen askel, sijainnin tulisi vastata akselia, jonka mukaan lajittelet.

Huomautus

Kun lajittelet akselin 0 mukaan, voit käyttää vain viipaletta, jossa on negatiivinen askel, koska se jo indeksoi tämän akselin mukaan.

import numpy as np
array_2d = np.array([[2, 9, 3], [1, 6, 4], [5, 7, 8]])
# Sorting a 2D array along axis 1 in descending order
print(np.sort(array_2d)[:, ::-1])
# Sorting a 2D array along axis 0 in descending order
print(np.sort(array_2d, axis=0)[::-1])
# Creating a 1D sorted array out of the elements of array_2d in descending order
print(np.sort(array_2d, axis=None)[::-1])
12345678
import numpy as np array_2d = np.array([[2, 9, 3], [1, 6, 4], [5, 7, 8]]) # Sorting a 2D array along axis 1 in descending order print(np.sort(array_2d)[:, ::-1]) # Sorting a 2D array along axis 0 in descending order print(np.sort(array_2d, axis=0)[::-1]) # Creating a 1D sorted array out of the elements of array_2d in descending order print(np.sort(array_2d, axis=None)[::-1])
copy
Tehtävä

Swipe to start coding

Sinulla on 2D-taulukko nimeltä exam_scores, joka sisältää pisteet jokaisesta kokeesta tietystä aineesta. Jokainen sarake edustaa tiettyä aihetta, ja jokainen rivi edustaa yksittäistä opiskelijaa. Näin ollen tietty rivi näyttää kyseisen opiskelijan pisteet jokaisesta kokeesta.

  1. Luo 2D NumPy -taulukko nimeltä top_scores_subject perustuen exam_scores -taulukkoon, jossa jokainen sarake, joka edustaa tiettyä aihetta, on lajiteltu pisteiden mukaan laskevassa järjestyksessä.

  2. Luo 1D NumPy -taulukko nimeltä sorted_scores perustuen exam_scores -taulukkoon, joka sisältää kaikki pisteet lajiteltuna nousevassa järjestyksessä.

Tällä tavalla voit helposti tunnistaa korkeimmat pisteet jokaisesta kokeesta ja alhaisimmat pisteet kaikista kokeista.

Ratkaisu

import numpy as np
# Simulated exam scores for three students in three subjects
exam_scores = np.array([[75, 82, 90], [92, 88, 78], [60, 70, 85]])
# Create an array with every column sorted by scores in descending order
top_scores_subject = np.sort(exam_scores, axis=0)[::-1]
# Create a 1D array of all scores sorted in ascending order
sorted_scores = np.sort(exam_scores, axis=None)
print(top_scores_subject)
print(sorted_scores)

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 2
import numpy as np
# Simulated exam scores for three students in three subjects
exam_scores = np.array([[75, 82, 90], [92, 88, 78], [60, 70, 85]])
# Create an array with every column sorted by scores in descending order
top_scores_subject = ___.___(___, ___=___)[___]
# Create a 1D array of all scores sorted in ascending order
sorted_scores = ___.___(___, ___=___)
print(top_scores_subject)
print(sorted_scores)

Kysy tekoälyä

expand
ChatGPT

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

some-alt