[NumPy 学习笔记] - No.2 NumPy数据索引

本文深入探讨Numpy库在Python中的应用,介绍如何利用Numpy进行高效的大规模数组操作,包括基本索引、切片索引、数组索引、布尔数组索引等技巧,并通过实例展示Numpy强大的数据处理能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

numpy学习笔记

numpy是python中非常有用的一个库,我们可以使用numpy创建大型的高维数组并进行运算。这里记录一下numpy一些常用的方法。如果想仔细研究numpy的强大功能还需要翻阅NumPy API文档

数组索引
常见索引

对数组最简单的索引就是常见的[]索引

#  索引
x = np.array([1, 2, 3])
print ("x[0]: ", x[0]) # x[0]:  1
x[0] = 0
print ("x: ", x) # x:  [0 2 3]

y = np.arange(6).reshape(2,-1)  
print("y:\n",y) # [[0 1 2]
				# [3 4 5]]
print(y[1][1])  # 4
切片索引

在python中,我们使用切片来访问list;在NumPy中,也可以使用切片访问numpy

访问某一行/列:

y = np.arange(6).reshape(2,-1) 
print("y:\n",y) # [[0 1 2]
				# [3 4 5]]
    
print("row 0:",y[0,:])  # row 0: [0 1 2] 
print("column 2:",y[:,2]) # column 2: [2 5]

访问数组中的某一块数据:

print("row 0,1 & cols 1,2:\n",y[0:2,1:3])

row 0,1 & cols 1,2:
[[1 2]
[4 5]]

数组索引

在numpy中还可以使用数组进行索引:

t = np.arange(12).reshape(3,-1)
print("t :\n",t)
rows = [0,1,2]
cols = [0,3,1]

print("index values:\n",t[rows,cols])

t :
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
index values:
[0 7 9]

在上边的例子中,我们定义了一个3x4的矩阵,然后访问 [0][0], [1][3], [2][1]三个位置的数据。

布尔数组索引

在numpy中,我们还可以很轻松的查看,某些满足布尔条件的元素集合。示例如下:

在python中, x>2 代表一个布尔表达式,用于判断x是否大于二,返回True或者False;如果x是一个numpy的数组,将返回什么结果呢?

# Boolean array indexing
x = np.array([[1,2], [3, 4], [5, 6]])
bool_index = x > 2
print ("x:\n", x)
print ("x > 2:\n", bool_index)

x:
[[1 2]
[3 4]
[5 6]]
x > 2:
[[False False]
[ True True]
[ True True]]

可以看到,x > 2 返回了bool类型的numpy数组,该数组中每个元素是原数组中对应位置 针对 x > 2条件的结果。

Numpy中的布尔索引就是将布尔数组应用到numpy数组中;布尔数组中的True表示选取被索引数组对应位置的值,False则表示不选取对应位置的值。因此我们可以很简单的获取到,某个数组中所有大于2的元素的集合。

print ("x[x > 2]:\n", x[x > 2])

x[x > 2]:
[3 4 5 6]

资料参考:practicalAI

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值