2.2 NumPy数组的切片和索引操作 -续

导入 NumPy 库:

In [1]:

import numpy as np #导入 NumPy 库 
np.__version__ #打印numpy版本

Out[1]:

'1.24.2'

细心的读者可以发现,前面的切片和索引操作只能索引出有规律的元素数据,比如同轴向,若要索引如下元素则无法实现,下面就介绍数组的高级索引,可以实现对任意元素的索引。 

2.2.3: 数组高级索引 -花式索引

花式索引是指NumPy使用整型数组作为索引。

整型数组作为索引可以获取数组中任意元素。整型数组表示方式是每个维度都可以是该维度的一组下标值,可以用NumPy数组,元组或列表形式表示。若某个维度缺省索引则表示该维度索引该维度的所有下标。

花式索引其实就是索引的扩展,前面的索引操作每个维度都只有一个下标,而花式索引时维度是采用一组下标进行索引。需要注意的是,花式索引有两种情况:

  • 每个维度的整数数组索引的下标数目要相同,索引时是对应位置的各维度的下标组成下标对进行索引,索引得到一维数组。
  • 每个维度的整数数组索引的下标数目不相同时,只允许两种情况,要么有的维度无索引,表示该维度索引全部元素,要么有的维度只有一个下标索引。否则报错。

其意义是根据采用整型数组作为目标数组的某个轴的下标值进行索引。当我们想以特定的顺序来选取子集的时候,只需传入一个用于指定顺序的整数列表或ndarray即可。

下面通过实例来展示花式索引过程:

In [2]:

arr2_3_1 = np.arange(1,16)
arr2_3_1

Out[2]:

array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])

In [3]:

arr2_3_1[5]

Out[3]:

6

通过列表或元组进行对arr2_3_1花式索引,可以索引出对应下标位置的元素,注意:使用元组时需要在元组后有个逗号。否则报错

In [4]:

arr2_3_1[[4,6,2]]

Out[4]:

array([5, 7, 3])

In [5]:

arr2_3_1[(4,6,2),] #使用元组时需要在元组后有个逗号

Out[5]:

array([5, 7, 3])

一维数组的花式索引结果是对应位置的元素组成新的一维数组。

2、多维数组花式索引

In [6]:

arr2_3_2 = np.arange(1,16).reshape(3,5)
arr2_3_2

Out[6]:

array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [11, 12, 13, 14, 15]])

各维度以元组方式进行花式索引:

In [7]:

arr2_3_2[(0,1,2),(4,2,3)]  

Out[7]:

array([ 5,  8, 14])

也可以是列表形式:

In [8]:

arr2_3_2[[0,1,2],[4,2,3]]

Out[8]:

array([ 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenos121

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值