一、Numpy索引
一维索引
1
2
3
4
5import numpy as np
A = np.arange(3,15)
# array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
print(A[3]) # 6二维索引
1
2
3
4
5
6
7
8A = np.arange(3,15).reshape((3,4))
"""
array([[ 3, 4, 5, 6]
[ 7, 8, 9, 10]
[11, 12, 13, 14]])
"""
print(A[2]) # [11 12 13 14]
二维索引取值
1
print(A[1][1]) # 8
切片操作 注:1:3表示对第2到第4进行切片输出(不包含第4)
1
2print(A[1, 1]) # 8
print(A[1, 1:3]) # [8 9]
二、array 合并
- np.vstack() 上下合并
vertical stack本身属于一种上下合并,即对括号中的两个整体进行对应操作。
1
2
3
4
5
6
7
8
9import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
print(np.vstack((A,B))) # vertical stack
"""
[[1,1,1]
[2,2,2]]
"""利用shape函数可以让我们很容易地知道A和C的属性,从打印出的结果来看,A仅仅是一个拥有3项元素的数组(数列),而合并后得到的C是一个2行3列的矩阵。
1
2
3C = np.vstack((A,B))
print(A.shape,C.shape)
# (3,) (2,3)
- np.hstack() 左右合并
1
2
3
4
5
6
7D = np.hstack((A,B)) # horizontal stack
print(D)
# [1,1,1,2,2,2]
print(A.shape,D.shape)
# (3,) (6,)
- 通过打印出的结果可以看出:D本身来源于A,B两个数列的左右合并,而且新生成的D本身也是一个含有6项元素的序列。