Tunza wa Array ya NumPy

Kina cha kufichia kwa jadwala

Kuondoa mambo kati ya jadwala wa kwanza kwa kumwua jadwala jipya kwa mambo yao ni kina cha kufichia (filtering).

Kwenye NumPy, tumetumia jadwala maelezo wa Boole kwa kufichia jadwala.

Jadwala maelezo wa Boole ina jadwala thamani za Boole zinginezo ambazo zinaingia kwenye index ya jadwala maelezo.

Kama thamani hii ina namba kwenye index hii Trueelement hii inaenea kwenye jadwala maelezo iliyochukuliwa; kama thamani hii ina namba kwenye index hii Falseelement hii itafichia kwenye jadwala maelezo iliyochukuliwa.

实例

Kumwua jadwala maelezo kwa viwango 0 na 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)

Kumwimba Mfano

Mifano hii itakuretia [61, 63, 65]Ndio ni nini?

Kwa sababu jadwala maelezo jipya ina jadwala thamani zote za jadwala maelezo ya kwanza True kwa thamani, kwa hiyo hili kwa kawaida, index ni 0 na 2, 4.

kumwua jadwala maelezo

Kwenye mifano hii, tumekuwa na True na False Wamalimbikiana kwa uangalau, lakini kawaida inatumiwa kwa kumwua jadwala maelezo wa kufichia kwa msingi wa kawaida.

实例

创建一个仅返回大于 62 的值的过滤器数组:

import numpy as np
arr = np.array([61, 62, 63, 64, 65])
# 创建一个空列表
filter_arr = []
# 遍历 arr 中的每个元素
for element in arr:
  # Ikiwa inayotoka angalau 62, asifaidhekiwa kufikia True, inakosema False:
  if element > 62:
    filter_arr.append(True)
  else:
    filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Kumwimba Mfano

实例

创建一个过滤器数组,该数组仅返回原始数组中的偶数元素:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
# 创建一个空列表
filter_arr = []
# 遍历 arr 中的每个元素
for element in arr:
  # 如果元素可以被 2 整除,则将值设置为 True,否则设置为 False
  if element % 2 == 0:
    filter_arr.append(True)
  else:
    filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Kumwimba Mfano

直接从数组创建过滤器

上例是 NumPy 中非常常见的任务,NumPy 提供了解决该问题的好方法。

我们可以在条件中直接替换数组而不是 iterable 变量,它会如我们期望地那样工作。

实例

创建一个仅返回大于 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)

Kumwimba Mfano

实例

创建一个过滤器数组,该数组仅返回原始数组中的偶数元素:

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)

Kumwimba Mfano