python numpy array 分割

#每天一点点#
python numpy array 分割

生成一个0-11之间的数字,3行4列的array

import numpy as np
A = np.arange(12).reshape((3,4)) 

输出结果???????????
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
输出结果???????????

1:将这个矩阵纵向分割为对等的2部分

#纵向分割的两种方法
B = np.split(A,2,axis = 1) #纵向分割,以列为轴,分成对等的2块
B1 = np.hsplit(A,2)   

输出结果???????????
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
输出结果???????????

2:将这个矩阵横向分割为对等的3部分

#横向分割的两种方法
C = np.split(A,3,axis = 0) #横向分割,以行为轴,分为对等的3块
C1 = np.vsplit(A,3) 

输出结果???????????
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
输出结果???????????

3:split 不能进行不等的分割

#split 不能进行不等的分割
D = np.split(A,2,axis = 0)
D1 = np.vsplit(A,2)

E = np.split(A,3,axis = 1)
E1 = np.hsplit(A,3) 

输出结果???????????
ValueError: array split does not result in an equal division
输出结果???????????

4:如果想把3行4列的矩阵,进行分割呢??
array_split 可以将矩阵进行不对等分割

#用array_split 可以进行分割
F = np.array_split(A,2,axis = 0)
G = np.array_split(A,3,axis = 1)

print(F)
输出结果???????????
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
输出结果???????????

print(G)
输出结果???????????
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2],
[ 6],
[10]]), array([[ 3],
[ 7],
[11]])]
输出结果???????????


版权声明:本文为YmeBtc原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。