NumPy怎样使用花式索引或布尔索引访问元素?

news2025/1/12 20:36:18

除了整数索引之外,NumPy中还提供了两个形式比较复杂的索引——花式索引和布尔索引,下面对这两种索引的基本用法进行详细的讲解。

1.花式索引

花式索引指以整数组成的数组或列表为索引。当使用花式索引访问一维数组时,程序会将花式索引对应的数组或列表的元素作为索引,依次根据各个索引获取对应位置的元素,并将这些元素以数组的形式返回;当使用花式索引访问二维数组时,程序会将花式索引对应的数组或列表的元素作为索引,依次根据各个索引获取对应位置的一行元素,并将这些行元素以数组的形式返回。接下来,创建一个一维数组,使用花式索引获取该数组的多个元素,代码如下。

In  []:   import numpy as np
          array_ld = np.arange (1, 10)
          print (array_1d)
          print("-
          访问索引为[2,5,8]的元素
          print (array_1d[[2, 5, 8]])
          [1 2 3 45 6 7 8 9]
          ____________
          [36 9]

以上代码首先创建了一个一维数组array_ld,然后使用花式索引[2.5.8]访问了该一维数组,即依次获取索引2、5、8对应的元素3、6、9.并返回包含这几个元素的数组。由输出结果可知,程序输出了一个包含3、6、9这3个元素的数组,说明使用花式索引成功地一次访问了数组中的多个元素。
接下来,创建一个二维数组,使用花式索引获取该数组的多行元素,代码如下。

In  []:   array_2d - np.arange (1, 10).reshape((3, 3))
          print (array_2d)
          print("_______________")
          # 访问索引为[0,2]的元素
          print(array_2d[[0, 2]])
            [[1 2 3]
            [4 5 6]
            [7 8 9]]
            [[1 2 3]
            [7 8 9]]

需要说明的是,在使用两个花式索引,即通过“二维数组[花式索引,花式索引]”的形式访问数组时,会将第一个花式索引对应数组或列表的各元素作为行索引,将第二个花式索引对应数组或列表的各元素作为列索引,再按照“二维数组[行索引,列索引]”的形式获取对应位置的元素。例如,使用两个花式索引访问二维数组array_2d的元素,代码如下。

In 1]:   #使用两个花式索引访问元素
         print (array_2d[[0, 2], [1, 1]])
           [2 8]

上述与二维数组相关的花式索引操作的示意图如下图所示。

二维数组

花式索引操作示意图

2.布尔索引

布尔索引是以布尔值构成的数组为索引。当使用布尔索引访问一个目标数组时,程序会将布尔数组中的每个布尔值作为索引,只要布尔值为True,就从目标数组中获取与True位置对应的元素。需要说明的是,布尔数组的形状必须与目标数组的形状相同。接下来,创建一个二维数组,获取该数组中值大于5的元素,代码如下。

In []:   array_2d = np.arange (1, 10).reshape ((3, 3))
         print(array_2d)
         print("-_______--")
         使用布尔索引访问元素
         print (array_2d > 5)
         print("----------")
         print (array_2d[array_2d > 5])
         [{1 2 3]
          [4 5 6]
          [7 8 9]}
         ----------
         [[False False Falce]
          [False False Truf
          [ True True True]}
         ----------
          [6 7 8 9]

以上代码中,首先创建了一个形状为(3,3)的二维数组array_2d,该数组中的元素为1~9;然后将array_2d数组进行布尔运算,判断array_2d中的每个元素是否都大于5.大于5会得到布尔值 Tnue,小于5会得到布尔值False,所有的布尔值构成一个形状与array_2d数组相同的布尔数组;最后将这个布尔数组作为布尔索引,通过布尔索引获取array_2d数组中的元素。从输出的结果可以看出,程序返回了array_2d数组中与布尔数组中Tnue位置对应的元素。

上述二维数组相关的布尔索引操作的示意图如图2-4所示。

布尔索引操作示意图

布尔索引示意图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/720565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

音视频基础 - YUV和RGB

1. 音视频名词概念 1.1 像素 像素是一张图片的基础单位,pixel,简称px 无数个像素组合在一起,就形成了一张图片。 1.2 分辨率 分辨率 垂直像素*水平像素,(理论上) 图像的分辨率越高,图像就越清晰。 比如下面左边这张…

【链表OJ】链表的回文结构

⭐️ 往期相关文章 💫链接1:链表分割 💫链接2:链表中倒数第k个结点(快慢指针问题) 💫链接3:leetcode 876.链表的中间结点(快慢指针问题) 💫链接4:leetcode 206.反转链表 &#x1f4…

游游画U(秒用c++ string函数)

看到这道题&#xff0c;第一反应是简单的模拟&#xff0c;上手就写&#xff0c;后来看大佬代码&#xff0c;还是我太蠢了 我的&#xff1a; #include <bits/stdc.h> using namespace std; typedef long long LL;int main() {int n;cin>>n;string s ""…

【Spark】RDD转换算子

目录 map mapPartitions mapPartitionsWithIndex flatMap glom groupBy shuffle filter sample distinct coalesce repartition sortBy ByKey intersection union subtract zip partitionBy reduceByKey groupByKey reduceByKey 和 groupByKey 的区别 a…

kafka的broker和replica和文件存储

zookeeper中存储的kafka信息 /brokers/ids&#xff0c;记录存在的服务器id/brokers/topics/test/partitions/0/state&#xff0c;记录leader和可用副本服务器/comsumers&#xff0c;0.9版本之前存储消费者的offset信息&#xff0c;但是会产生zookeeper和broker的跨节点通信/co…

SPSS读取数据文件(一)

1.读取Excel数据文件 &#xff08;1&#xff09;选择“文件”-“打开”-“数据”,在弹出的“打开数据”对话框下选择Excel文件&#xff0c;如图所示 &#xff08;2&#xff09;选择要打开的Excel文件&#xff0c;点击“打开”&#xff0c;如图所示 &#xff08;3&#xff09;可…

[论文总结]YOLO v1、YOLO v2、YOLO v3、YOLO v4、YOLOv5

背景 在这里我们主要介绍YOLO 系列的相关目标检测算法&#xff0c;从最开始的YOLO v1 一直到 YOLO v5。本文也借鉴了其他文档和原始论文。总结下来这五个方法的演进线路如下表格所示。 对比维度YOLO v1YOLO v2YOLO v3YOLO v4YOLO v5backboneVGGdarknet19darknet53darknet53da…

Lua学习笔记:浅谈对垃圾回收的理解

前言 本篇在讲什么 Lua的垃圾回收 本篇适合什么 适合初学Lua的小白 本篇需要什么 对Lua语法有简单认知 依赖Sublime Text编辑器 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手 提供全流程的源码内容 ★提高阅读体验★ &#x1f…

Unity:sentinel key not found (h0007)

SSD换电脑&#xff0c;unity 编辑器无法打开&#xff1b; 具体步骤&#xff1a; 删除这个路径下的文件 C:\ProgramData\SafeNet 下 Sentinel LDK 打开Windows 的Cmd 命令行&#xff0c;输入编辑器版本下Unity.exe的路径&#xff0c; CD E:\Dev_Env\Unity\Hub\Editor\2020.3.3…

如何将 arduino-esp32 库作为 ESP-IDF 组件使用?

相关文档 arduino-esp32 SDKESP-IDF SDKESP-IDF 软件环境搭建说明Arduino 软件环境使用说明Arduino as an ESP-IDF component &#xff08;官方说明&#xff09; 环境准备 目前&#xff0c;最新 Master 版本的 arduino-esp32 SDK 要求使用 v4.4 版本的 ESP-IDF SDK 软件编译环…

05、Nginx反向代理

一、网关、代理与反向代理&#xff1a; 在Nginx中&#xff0c;网关、代理和反向代理是三种常见的功能&#xff0c;用于转发和处理请求。下面是它们的简要介绍&#xff1a; 网关&#xff08;Gateway&#xff09;&#xff1a; 网关在网络通信中起到中介的作用&#xff0c;将客户…

【视觉SLAM入门】1. 基础知识,运动观测,旋转(旋转矩阵,轴角,欧拉角,四元数)和eigen库基础

"山薮藏疾" 1. 运动与观测1.1 通用运动方程1.2 通用观测方程1.3 对SLAM的认识 2. 三维运动2.1 旋转与平移2.2 变换矩阵2.3 矩阵知识补充2.4 旋转向量2.5 欧拉角2.6 四元数2.7 其他变换 3. 编程基础3.1 链接库说明3.2 eigen库 注&#xff1a; 以后的方程中如未说明&am…

面试官:一千万的数据,要怎么查?

一个老生常谈的问题&#xff0c;SELECT *和SELECT具体字段那个快&#xff1f;在数据量少的时候可能没什么差别&#xff0c;但是数据量达到千万级&#xff0c;差距就显现出来。废话不多说&#xff0c;往下看 ↓。 SELECT * 和 SELECT 具体字段的区别 在 MySQL 中&#xff0c;SE…

批量规范化

✨✨✨ 感谢优秀的你打开了小白的文章 “希望在看文章的你今天又进步了一点点&#xff0c;生活更加美好&#xff01;”&#x1f308;&#x1f308;&#x1f308; 目录 1.批量规范化基本原理 2.批量规范化的使用 2.1对于全连接层 2.2对于卷积层 3.代码实现 3.1方式一 …

26488-24-4,Cyclo(D-Phe-L-Pro),具有良好的生物相容性

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ 【产品描述】 Cyclo(D-Phe-L-Pro)环(D-苯丙氨酸-L-脯氨酸)&#xff0c;环二肽是由两个氨基酸通过肽键环合形成&#xff0c;是自然界中小的环状肽。由于其存在两个酰胺键即四个可以形成氢键的位点&#xff0c;环二肽可以在氢…

商业海外社交媒体营销10步指南 [2023]

如今&#xff0c;社交媒体是任何成功商业战略的重要组成部分。这不是奢侈品&#xff0c;而是必需品。全球有超过 36 亿人使用社交媒体&#xff0c;它是企业展示其产品和服务、建立品牌知名度以及与客户联系的数字游乐场。 但这不仅仅是娱乐和游戏。要在社交媒体上取得成功&…

Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组

目录 329. 矩阵中的最长递增路径 Longest Increasing Path In A Matrix &#x1f31f;&#x1f31f; 330. 按要求补齐数组 Patching Array &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每日…

数据结构--二叉树的性质

数据结构–二叉树的性质 二叉树常考性质 常见考点1: 设非空二叉树中度为0、1和2的结点个数分别为 n 0 、 n 1 和 n 2 &#xff0c;则 n 0 n 2 1 n_0、n_1和n_2&#xff0c;则n_0 n_2 1 n0​、n1​和n2​&#xff0c;则n0​n2​1 n 0 n 2 1 \color{red}n_0 n_2 1 n0​n2​…

图层中大型数据集的分块处理思路

图层中大型数据集的分块处理思路 为改善要素叠加工具&#xff08;如联合和相交&#xff09;的性能和可伸缩性&#xff0c;软件采用了称为自适应细分处理的运算逻辑。当可用的物理内存不足以对数据进行处理时&#xff0c;就会触发系统使用此逻辑。由于保持在物理内存的可用范围…

助力企业完成等保2.0的重要工具

在当今数字化时代&#xff0c;企业面临着越来越多的网络安全威胁和数据泄露风险。为了保护敏感信息和维护业务的连续性&#xff0c;许多企业正在积极采取措施来实施等保2.0标准。在这一过程中&#xff0c;EventLog Analyzer作为一种全面的安全信息与事件管理解决方案&#xff0…