文章目录
- 简介
- 索引方法
简介
numpy是python中最常用的科学计算包,而数组则是是numpy的核心类型,也是Python称为科学计算领域首选语言的关键类型,可以不夸张地说,正是数组类型的强大与易用性,筑就了Python帝国。
和Python中的其他容器一样,数组通过[]
索引,支持:
格式,索引号从0开始,负数表示从后向前索引
import numpy as np
# 生成3行5列的100以内随机整数
np.random.seed(42)
x = np.random.randint(100,size=(3,5))
print(x)
[ 51 92 14 71 60 20 82 86 74 74 87 99 23 2 21 ] \begin{bmatrix} 51&92&14&71&60\\20&82&86&74&74\\87&99&23& 2&21\\ \end{bmatrix} 51208792829914862371742607421
上面的矩阵即为 x x x的内容,下表以此为基础,演示numpy的索引方法。
索引方法
代码 | 索引结果 | 含义 |
---|---|---|
x[-1] | [ 63 74 21 6 47 ] \begin{bmatrix}63&74&21& 6&47\end{bmatrix} [637421647] | 倒数第一行 |
x[:,1] | [ 52 77 74 ] \begin{bmatrix}52&77&74\end{bmatrix} [527774] | 第1列 |
x[0:2, 1:3] | [ 52 80 77 74 ] \begin{bmatrix}52&80\\77&74\end{bmatrix} [52778074] | 第0到2行;第1到3列的所有元素 |
x[:2, 1:] | [ 52 80 82 33 77 74 21 62 ] \begin{bmatrix}52&80&82&33\\77&74&21&62\end{bmatrix} [5277807482213362] | 0:2中的0可以省略 冒号后面什么也不写表示末尾 |
x[[0,2]] | [ 8 52 80 82 33 63 74 21 6 47 ] \begin{bmatrix}8&52&80&82&33\\63&74&21& 6&47\end{bmatrix} [863527480218263347] | 索引第0行和第2行 |
x[[0,2],[1,4]] | [ 52 47 ] \begin{bmatrix}52&47\end{bmatrix} [5247] | 索引 ( 0 , 1 ) , ( 2 , 4 ) (0,1), (2,4) (0,1),(2,4)这两个点 |
此外,numpy数组支持更高级的冒号写法,以x[1:8:2]
为例,表示以2为间隔索引从1到8的数据。
x = np.random.randint(100,size=(10))
# [52, 1, 87, 29, 37, 1, 63, 59, 20, 32])
x[1:8:2]
#[ 1, 29, 1, 59])