NumPy 布尔数组索引的实现示例

 更新时间:2026年01月06日 09:40:37   作者:溯维_Particle  
在NumPy中,布尔数组索引是一种强大的元素选择方式,它通过 True/False的逻辑判断筛选元素,下面就来详细的介绍一下如何使用,感兴趣的可以了解一下

在 NumPy 中,布尔数组索引是一种强大的元素选择方式,它通过 “True/False” 的逻辑判断筛选元素。以下是具体用法及带输出注释的示例代码。

1  与原数组同形的布尔数组索引

创建和原数组形状相同的布尔数组,True 表示选择该元素,False 表示排除。

1.1  基本用法:筛选满足条件的元素

import numpy as np

# 创建一个3行4列的数组(元素0-11)
a = np.arange(12).reshape(3, 4)  
print("原数组a:")
print(a)
# Output:
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]

# 创建与a同形的布尔数组:判断a中元素是否大于4
b = a > 4  
print("\n布尔数组b(a > 4的结果):")
print(b)
# Output:
# [[False False False False]
#  [False  True  True  True]
#  [ True  True  True  True]]

# 用布尔数组b索引a,提取所有True位置的元素(返回一维数组)
selected_elements = a[b]  
print("\n筛选出的元素:")
print(selected_elements)
# Output: [ 5  6  7  8  9 10 11]

1.2  赋值操作:批量修改满足条件的元素

# 继续使用上面的数组a和布尔数组b
a[b] = 0  # 将a中所有>4的元素赋值为0
print("修改后的数组a:")
print(a)
# Output:
# [[0 1 2 3]
#  [4 0 0 0]
#  [0 0 0 0]]

2  按维度的一维布尔数组索引

对每个维度提供一维布尔数组(长度需与对应维度一致),用于选择该维度的 “切片”。

2.1  选择某一维度的切片(以二维数组为例)

import numpy as np

a = np.arange(12).reshape(3, 4)  # 3行4列,行索引0-2,列索引0-3
print("原数组a:")
print(a)
# Output:
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]

# 行选择的布尔数组:长度=行数(3),选择第2、3行(索引1、2)
b1 = np.array([False, True, True])  
# 列选择的布尔数组:长度=列数(4),选择第1、3列(索引0、2)
b2 = np.array([True, False, True, False])  

# 选择行(第一个维度):等价于a[b1, :]
print("\n选择行(b1为[False, True, True]):")
print(a[b1])  
# Output:
# [[ 4  5  6  7]
#  [ 8  9 10 11]]

2.2  选择列(第二个维度)

print("\n选择列(b2为[True, False, True, False]):")
print(a[:, b2])
# Output:
# [[ 0  2]
#  [ 4  6]
#  [ 8 10]]

2.3  同时选择行和列

print("\n同时选择行和列(b1和b2结合):")
print(a[b1, b2])
# Output: [4 10]
# 解释:b1选择行1、2,b2选择列0、2 → 取(1,0)和(2,2)位置的元素:4和10

到此这篇关于NumPy 布尔数组索引的实现示例的文章就介绍到这了,更多相关NumPy 布尔数组索引内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Pandas读取并修改excel的示例代码

    Pandas读取并修改excel的示例代码

    这篇文章主要介绍了Pandas读取并修改excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • Python爬虫实现百度翻译功能过程详解

    Python爬虫实现百度翻译功能过程详解

    这篇文章主要介绍了Python爬虫实现百度翻译功能过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python实现删除当前目录下除当前脚本以外的文件和文件夹实例

    Python实现删除当前目录下除当前脚本以外的文件和文件夹实例

    这篇文章主要介绍了Python实现删除当前目录下除当前脚本以外的文件和文件夹的方法,涉及Python针对目录及文件的删除技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 对pycharm 修改程序运行所需内存详解

    对pycharm 修改程序运行所需内存详解

    今天小编就为大家分享一篇对pycharm 修改程序运行所需内存详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python实现网站表单提交和模板

    Python实现网站表单提交和模板

    今天小编就为大家分享一篇关于Python实现网站表单提交和模板,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 基于Python pathlib库的路径/文件/目录常用操作

    基于Python pathlib库的路径/文件/目录常用操作

    pathlib 模块提供了文件路径对象抽象,不仅仅是替换os.path模块对文件的操作,可以说是路径处理的好手,这篇文章主要介绍了基于Python pathlib库的路径/文件/目录常用操作的相关资料,需要的朋友可以参考下
    2025-12-12
  • Django REST框架创建一个简单的Api实例讲解

    Django REST框架创建一个简单的Api实例讲解

    在本篇文章里小编给大家整理的是关于Django REST框架创建一个简单的Api实例讲解,有需要的朋友们可以学习下。
    2019-11-11
  • Python selenium find_element()示例详解

    Python selenium find_element()示例详解

    selenium定位元素的函数/方法可以分为两类:find_element及find_elements,下面这篇文章主要给大家介绍了关于Python selenium find_element()的相关资料,需要的朋友可以参考下
    2022-07-07
  • 局域网内python socket实现windows与linux间的消息传送

    局域网内python socket实现windows与linux间的消息传送

    这篇文章主要介绍了局域网内python socket实现windows与linux间的消息传送的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • numpy系列之数组重塑的实现

    numpy系列之数组重塑的实现

    本文主要介绍了numpy数组重塑。所谓数组重塑就是更改数组的形状,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论