1. 引入numpy第三方库
首先我们引入numpy这个第三方库,如果有同学没安装numpy可在命令行中pip install numpy进行安装(Mac用户 sudo pip3 install numpy)
- 测试采用python版本3.7.0 64bit
import numpy as np
2. array行列获取
import numpy as np
a=np.array([[ 2, 7, 4, 2],
[35, 9, 1, 5],
[22, 12, 3, 2]])
print(a[:, [0]]) ## 第0列
print(a[[1],:]) ## 第1行
- 输出结果
[[ 2]
[35]
[22]]
[[35 9 1 5]]
3. array的合并
3.1. 垂直合并
A = np.array([1, 2, 3, 4])
B = np.array([2, 3, 4, 5])
print(np.vstack((A, B)))
3.2. 水平合并
print(np.hstack((A, B))) #水平合并
C = np.array([7, 7, 7])[:, np.newaxis] # 纵向加一个维度,将array转为3行1列的矩阵
D = np.array([9, 9, 9])[:, np.newaxis]
E = np.concatenate((C, D, D, C), axis=1) # axis=1为水平合并, axis=0为垂直合并
print(E)
3.3. array的合并代码示例
import numpy as np
A = np.array([1, 2, 3, 4])
B = np.array([2, 3, 4, 5])
C = np.array([7, 7, 7])[:, np.newaxis] # 纵向加一个维度,将array转为3行1列的矩阵
D = np.array([9, 9, 9])[:, np.newaxis]
print('打印A与B:')
print(A)
print(B)
print(C)
print('\n垂直合并:')
print(np.vstack((A, B))) #np.vstack需要输入tuple,需加()
print('\n水平合并:')
print(np.hstack((A, B)))
print('\n水平合并,axis=1 为水平合并 反之为垂直合并:')
E = np.concatenate((C,D,D,C),axis=1)
print(E)
F = np.array([A,B]).T #翻转矩阵
print('打印翻转矩阵F:')
print(F)
- 输出结果
打印A与B:
[1 2 3 4]
[2 3 4 5]
[[7]
[7]
[7]]
垂直合并:
[[1 2 3 4]
[2 3 4 5]]
水平合并:
[1 2 3 4 2 3 4 5]
水平合并,axis=1 为水平合并 反之为垂直合并:
[[7 9 9 7]
[7 9 9 7]
[7 9 9 7]]
打印翻转矩阵F:
[[1 2]
[2 3]
[3 4]
[4 5]]
4. 矩阵的分割
4.1. 水平分割
A = np.array(12).reshape((3, 4))
print(np.split(A, 2, axis=1)) # 表示对A进行分割,分为两块,axis=1为水平分割
print(np.hsplit(A, 2)) # 效果同上
print(np.array_split(A, 3, axis=1)) # 不均等分割
4.2. 垂直分割
print(np.split(A, 3, axis=0)) # 表示对A进行分割,分为3块,axis=0为垂直分割
print(np.vsplit(A, 3)) # 效果同上
print(np.array_split(A, 2, axis=0)) # 不均等分割
4.3. 矩阵分割代码示例
import numpy as np
G = np.arange(12).reshape((3,4)) #输出3行,4列
print('打印矩阵G:')
print(G)
print('\nG水平分割为2块:')
print(np.hsplit(G, 2))
print('\nG水平分割为两块:')
print(np.split(G, 2, axis=1)) # 表示对A进行分割,分为两块,axis=1为水平分割
print('\nG垂直分割为3块:')
print(np.vsplit(G, 3)) # 不均等分割
print('\nG垂直不均等分割:')
print(np.array_split(G, 2, axis=0))
- 输出结果
打印矩阵G:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
G水平分割为2块:
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
G水平分割为两块:
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
G垂直分割为3块:
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
G垂直不均等分割:
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]