NumPy Array Filtering

Filtering ng array

Ang pagkuha ng ilang mga elemento mula sa kasalukuyang array at gumawa ng bagong array ay tinatawag na filtering (filtering).

Sa NumPy, gumagamit kami ng boolean index list upang filter ang array.

Ang boolean index list ay isang listahan ng boolean values na sumusunod sa mga index ng array.

Kung ang halaga ng index ay TrueKung ang elemento ay nasa filtered array; kung ang halaga ng index ay FalseKung ang elemento ay hindi nasa filtered array.

Halimbawa

Gumawa ng isang array gamit ang mga elemento na nasa index 0 at 2, 4:

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

Pagsasakatuparan ng Halimbawa

Ang nakaraang halimbawa ay magbibigay ng [61, 63, 65]Bakit?

Kasi ang bagong filter ay naglalaman lamang ng mga may halaga sa array ng filter True ng halaga, kaya sa ganitong sitwasyon, ang index ay 0 at 2, 4.

gumawa ng array ng filter

Sa nakaraang halimbawa, kami ay gumawa ng True at False Ang halaga ay hard-coded, ngunit karaniwang gamit ay gumawa ng array ng filter base sa kondisyon.

Halimbawa

Lumikha ng isang array ng filter na ibibigay lamang ang mga halaga na hihigit sa 62:

import numpy as np
arr = np.array([61, 62, 63, 64, 65])
# Lumikha ng isang walang lamang listahan
filter_arr = []
# Bumubulong sa bawat elemento sa arr
for element in arr:
  # Kung ang elemento ay lalong mababa sa 62, ay itatatakbo ang halaga bilang True, kung hindi ay False:
  kung ang elemento ay lalong mababa sa 62:
    filter_arr.append(True)
  else:
    filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Pagsasakatuparan ng Halimbawa

Halimbawa

Lumikha ng isang array ng filter, na ibibigay lamang ang mga kahalintulad na elemento ng orihinal na array:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
# Lumikha ng isang walang lamang listahan
filter_arr = []
# Bumubulong sa bawat elemento sa arr
for element in arr:
  # Kung ang elemento ay maaaring hatiin ng 2, itataglay ang halaga sa True, kung hindi itataglay ang halaga sa False
  if element % 2 == 0:
    filter_arr.append(True)
  else:
    filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Pagsasakatuparan ng Halimbawa

Pagbuo ng filter mula sa array

Ang halimbawa na ito ay isang pangkaraniwang ginagamit na gawain sa NumPy, na ibinibigay ng NumPy ang mahusay na paraan para malutas ang problema.

Maaari naming palitan ang array sa ilalim ng kondisyon sa halip na iterable na variable, ito ay gagana tulad ng inaasahan namin.

Halimbawa

Lumikha ng isang array ng filter na ibibigay lamang ang mga halaga na hihigit sa 62:

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)

Pagsasakatuparan ng Halimbawa

Halimbawa

Lumikha ng isang array ng filter, na ibibigay lamang ang mga kahalintulad na elemento ng orihinal na array:

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)

Pagsasakatuparan ng Halimbawa