🎊 NumPy索引的3种方式:数组索引、布尔索引和花式索引(附带实例)

NumPy索引的3种方式:数组索引、布尔索引和花式索引(附带实例)

NumPy 比一般的 Python 序列提供更多的索引方式,数组可以由整数数组索引、布尔索引和花式索引。

NumPy数组索引

【实例】获取 4×3 数组中四个角的元素。行索引是 [0,0] 和 [3,3],而列索引是 [0,2] 和 [0,2]。

import numpy as np

x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]])

print('数组是:')

print(x)

print('\n')

rows = np.array([[0,0],[3,3]])

cols = np.array([[0,2],[0,2]])

y = x[rows,cols]

print('这个数组四个角的元素是:')

print(y)

运行程序,输出如下:

数组是:

[[ 0 1 2]

[ 3 4 5]

[ 6 7 8]

[ 9 10 11]]

这个数组四个角的元素是:

[[0 2]

[9 11]]

返回的结果是包含每个角元素的 ndarray 对象。

此外还可以借助切片“:”或“...”与索引数组组合。例如:

import numpy as np

a = np.array([[1,3,7], [4,5,6], [2,8,9]])

b = a[1:3, 1:3]

c = a[1:3, [1,2]]

d = a[...,1:]

print(b)

print(c)

print(d)

运行程序,输出如下:

[[5 6]

[8 9]]

[[5 6]

[8 9]]

[[3 7]

[5 6]

[8 9]]

NumPy布尔索引

在 Python 中,可以通过一个布尔数组来索引目标数组。布尔索引通过布尔运算(如比较运算符)来获取符合指定条件的元素的数组。

【实例】获取大于 5 的元素。

import numpy as np

x=np.array([[ 0, 2, 6],[3, 11, 5],[4, 7, 8],[9, 10, 12]])

print(x)

print("\n")

# 打印出大于5的元素

print("大于5的元素是:")

print(x[x>5])

运行程序,输出如下:

数组是:

[[0 2 6]

[3 11 5]

[4 7 8]

[9 10 12]]

大于5的元素是:

[ 6 11 7 8 9 10 12]

NumPy花式索引

花式索引指的是利用整数数组进行索引。花式索引根据索引数组的值作为目标数组的某个轴的下标来取值。

对于使用一维整型数组作为索引,如果目标是一维数组,那么索引的结果就是对应下标的行,如果目标是二维数组,那么就是对应位置的元素。

花式索引跟切片不一样,它总是将数据复制到新数组中。

【实例】传入顺序与倒序索引数组。

import numpy as np

x=np.arange(32).reshape((8,4))

print('顺序索引数组:')

print (x[[4,2,1,7]])

print('倒序索引数组:')

print (x[[-4,-2,-1,-7]])

运行程序,输出如下:

顺序索引数组:

[[16 17 18 19]

[ 8 9 10 11]

[ 4 5 6 7]

[28 29 30 31]]

倒序索引数组:

[[28 29 30 31]

[24 25 26 27]

[20 21 22 23]

[ 4 5 6 7]]

🎈 相关推荐

侠盗飞车操作按键详解
🏷️ 日博官网365bet

侠盗飞车操作按键详解

📅 07-09 👀 2075
极限挑战第三季第三期BGM背景音乐大全 极限挑战3插曲
🏷️ 日博官网365bet

极限挑战第三季第三期BGM背景音乐大全 极限挑战3插曲

📅 07-26 👀 2417
《DNF》100级守护者白金徽章怎么选择 100级守护者白金徽章推荐汇总
郭沫若的诗集代表作
🏷️ 足球比分365cv

郭沫若的诗集代表作

📅 06-28 👀 7452
5G流量不同用途使用时间估算指南
🏷️ 2022年bet体育365官网合法吗

5G流量不同用途使用时间估算指南

📅 08-01 👀 1971
QQ空间说说/相册/留言恢复工具 找回QQ空间删除的回忆
🏷️ 2022年bet体育365官网合法吗

QQ空间说说/相册/留言恢复工具 找回QQ空间删除的回忆

📅 07-19 👀 5073