数组过滤

收藏181

阅读2498

更新时间2025-08-12

过滤数组

从现有数组中获取一些元素,并用它们创建一个新数组,这被称为过滤。

在 NumPy 中,您可以使用布尔索引列表来过滤数组。

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

如果某个索引处的值为 True,则该元素包含在过滤后的数组中;如果某个索引处的值为 False,则该元素从过滤后的数组中排除。

实例

从索引 0 和 2 上的元素创建一个数组:

import numpy as np

arr = np.array([41, 42, 43, 44])

x = [True, False, True, False]

newarr = arr[x]

print(newarr)

上面的例子会返回 [41, 43],为什么呢?

因为新数组仅包含过滤数组值为 True 的值,在本例中为索引 0 和 2。

创建过滤数组

在上面的示例中,我们硬编码了 TrueFalse 值,但通常的做法是基于条件创建过滤数组。

实例

创建一个过滤数组,仅返回高于 42 的值:

import numpy as np

arr = np.array([41, 42, 43, 44])

# 创建一个空列表
filter_arr = []

# 遍历 arr 中的每个元素
for element in arr:
  # 如果元素大于 42,则将该值设置为 True,否则设置为 False:
  if element > 42:
    filter_arr.append(True)
  else:
    filter_arr.append(False)

newarr = arr[filter_arr]

print(filter_arr)
print(newarr)

实例

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

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)

直接从数组创建过滤器

上面的示例是 NumPy 中相当常见的任务,NumPy 提供了一种很好的方法来解决它。

我们可以直接在条件中使用数组代替可迭代变量,它将按我们预期的方式工作。

实例

创建一个过滤数组,仅返回高于 42 的值:

import numpy as np

arr = np.array([41, 42, 43, 44])

filter_arr = arr > 42

newarr = arr[filter_arr]

print(filter_arr)
print(newarr)

实例

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

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)

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号