NumPy - 简介
NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。
Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包。 这个开源项目有很多贡献者。
NumPy 操作
使用NumPy,开发人员可以执行以下操作:
•数组的算数和逻辑运算。
•傅立叶变换和用于图形操作的例程。
•与线性代数有关的操作。 NumPy 拥有线性代数和随机数生成的内置函数。
numpy库多维数组的类型和列表的类型非常类似,同样有索引和切片功能:
索引:获取数组中特定位置元素的过程
切片:获取数组元素子集的过程
1.一维数组
1
2
3
|
# 准备一个数组 arr1 = np.array(np.arange( 9 )) arr1 |
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
1
2
3
4
5
6
7
8
|
# 索引 arr[ - 1 ] #8 arr1[arr1.size - 2 ] #7 arr1[arr1.size - 9 ] #0 # 切片 :[start:end:step] arr1[ 1 : 4 ] #左开右闭的区间 arr1[ 1 : 5 : 2 ] #array([1,3]) arr1[:: - 1 ] # 反向取所有,-1变成了步长 |
2.二维数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# 准备一个二维数组 arr2 = np.array([ np.arange( 1 , 4 ), np.arange( 5 , 8 ) ]) arr2 array([[ 1 , 2 , 3 ], [ 5 , 6 , 7 ]]) # 索引 arr2[ 0 ][ 2 ] # 3 arr2[ 0 , 2 ] # 3 # 切片 arr2[ 0 ,] # array([1,2,3]) arr2[ 0 ,::] # 同上 arr2[ 0 , 0 : 3 ] #array([1,2]) |
3.多维数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
arr4 = np.arange( 1 , 25 ).reshape( 2 , 3 , 4 ) arr4 array([[[ 1 , 2 , 3 , 4 ], [ 5 , 6 , 7 , 8 ], [ 9 , 10 , 11 , 12 ]], [[ 13 , 14 , 15 , 16 ], [ 17 , 18 , 19 , 20 ], [ 21 , 22 , 23 , 24 ]]]) arr4[ 1 ][ 2 ][ 2 ] # 23 arr4[ 1 , 1 , 1 ] #18 arr3[ 1 , 1 ,] # array([17,18,19,20]) arr4[ 1 , 1 ,::] # 同上 arr4[ 1 , 1 ,:: - 1 ] # array([20, 19, 18, 17]) arr4[ 0 , 1 : 3 ] #array([[ 5, 6, 7, 8], #[ 9, 10, 11, 12]]) arr4[: 1 , 1 ] #array([ 6, 18]) b[ 1 ,:, 2 ] #array([15, 19, 23]) b[ 1 ,...] #array([[13, 14, 15, 16], # [17, 18, 19, 20], # [21, 22, 23, 24]]) b[ 0 ,:: - 1 , - 1 ] #array([12, 8, 4]) b[:,:, - 1 ][:: - 1 ][:, - 1 ] #array([24, 12]) |
总结
以上所述是小编给大家介绍的python numpy数组的索引和切片的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://blog.csdn.net/qq_43287650/article/details/83210871