NumPy taulukon suodatus

Taulukon suodatus

Suodattaminen taulukosta tarkoittaa, että otetaan joitakin elementtejä nykyisestä taulukosta ja luodaan siitä uusi taulukko.

NumPy:ssä käytämme布尔索引列表aa taulukon suodattamiseen.

布尔索引列表是与数组中的索引相对应的布尔值列表。

Jos indeksin arvo on TrueJos elementti sisältyy suodatettuun taulukkoon; jos indeksin arvo on FalseJos elementti poistetaan suodatetusta taulukosta.

Esimerkki

Luo taulukko indeksien 0 ja 2, 4 elementeistä:

import numpy as np
arr = np.array([61, 62, 63, 64, 65])
x = [True, False, True, False, True]
newarr = arr[x]
print(newarr)

Suorita esimerkki

Esimerkki palauttaa [61, 63, 65]Miksi?

Koska uusi suodatin sisältää vain suodattimien taulukon arvot True arvoja, joten tässä tapauksessa indeksit ovat 0 ja 2, 4.

suodattimien taulukon luomista

Esimerkissä käytimme True ja False Arvo on kovakoodattu, mutta yleensä käytetään ehtoja luodakseen suodattimien taulukon.

Esimerkki

Luo suodattimena数组, joka palauttaa vain yli 62 olevat arvot:

import numpy as np
arr = np.array([61, 62, 63, 64, 65])
# Luo tyhjä lista
filter_arr = []
# Käy läpi arr:n jokainen elementti
for element in arr:
  Jos elementti on suurempi kuin 62, aseta arvo True, muuten False:
  if element > 62:
    filter_arr.append(True)
  else:
    filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Suorita esimerkki

Esimerkki

Luo suodattimena数组, joka palauttaa vain alkuperäisessä arrayssä olevat parilliset elementit:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
# Luo tyhjä lista
filter_arr = []
# Käy läpi arr:n jokainen elementti
for element in arr:
  # Jos elementti voidaan jakaa 2:lla kokonaislukuna, aseta arvo True, muuten False
  if element % 2 == 0:
    filter_arr.append(True)
  else:
    filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Suorita esimerkki

Luo suodattimena suoraan arraysta

Edellinen esimerkki on erittäin yleinen tehtävä NumPy:ssä, ja NumPy tarjoaa hyvän ratkaisun ongelmaan.

Voimme korvata suoraan ehdot arraysssa iteratiivisella muuttujalla, ja se toimii odotetusti.

Esimerkki

Luo suodattimena数组, joka palauttaa vain yli 62 olevat arvot:

import numpy as np
arr = np.array([61, 62, 63, 64, 65])
filter_arr = arr > 62
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Suorita esimerkki

Esimerkki

Luo suodattimena数组, joka palauttaa vain alkuperäisessä arrayssä olevat parilliset elementit:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
filter_arr = arr % 2 == 0
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Suorita esimerkki