数组的索引和切片
import numpy as np
(1)一维数组的索引和切片
n1 = np.arange(10)
print(n1[0])#输出一个数字
print(n1[5:7])#输出n1[5],n1[6],注意,不会输出n1[7]
print(n1[::2])#步长为2输出,输出为n1[0],n1[2],...,n1[8]
print(n1[-1])#输出数组的最后一位数
0
[5 6]
[0 2 4 6 8]
9
(2)多维数组的索引和切片
通过中括号来进行索引和切片的,在中括号中,用逗号进行分割
逗号之前为行,逗号之后为列
如果多维数组里只有一个值,那么这个值就是行
n2 = np.random.randint(0,10,size = (6,5))
print(n2)
print(n2[0])
[[9 5 0 3 7]
[5 1 0 2 2]
[6 6 1 0 9]
[5 1 6 5 2]
[9 7 7 3 1]
[0 3 3 4 9]]
[9 5 0 3 7]
提问:如何获得其中某几行?
如下,获得n2的第二行,第五行:
print(n2[[2,5]])
[[6 6 1 0 9]
[0 3 3 4 9]]
就把里面的一层括号想成数组,以数组作为索引
#获取某一行,某一列的值:
print(n2[0,2])
0
结合以上知识点,就可以获取多个指定的数距,如:获取第1行第4列,第2行第3列的数据
print(n2[[1,2],[4,3]])
[2 0]
以上是行和列为离散,下面介绍行和列为离散的情况
print(n2[0:3,2:5])
[[0 3 7]
[0 2 2]
[1 0 9]]
如何获取某一列的数据
print(n2[:,4])
[7 2 9 2 1 9]
获取某两列的数据
print(n2[:,[1,3]])
[[5 3]
[1 2]
[6 0]
[1 5]
[7 3]
[3 4]]
:代表所有行的意思