数组的索引和切片

数组的索引和切片

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]]

:代表所有行的意思

你可能感兴趣的:(numpy,python)