0
点赞
收藏
分享

微信扫一扫

Numpy的矩阵array分割

创建数据

首先 ​​import​​ 模块

import numpy as np

建立3行4列的Array

A = np.arange(12).reshape((3, 4))
print(A)
"""
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
"""

纵向分割

print(np.split(A, 2, axis=1))
"""
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
"""

横向分割

print(np.split(A, 3, axis=0))

# [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]

错误的分割

范例的Array只有4列,只能等量对分,因此输入以上程序代码后Python就会报错。

print(np.split(A, 3, axis=1))

# ValueError: array split does not result in an equal division

为了解决这种情况, 我们会有下面这种方式.

不等量的分割

在机器学习时经常会需要将数据做不等量的分割,因此解决办法为​​np.array_split()​

print(np.array_split(A, 3, axis=1))
"""
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2],
[ 6],
[10]]), array([[ 3],
[ 7],
[11]])]
"""

成功将Array不等量分割!

其他的分割方式

在Numpy里还有​​np.vsplit()​​​与横​​np.hsplit()​​方式可用。

print(np.vsplit(A, 3)) #等于 print(np.split(A, 3, axis=0))

# [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]


print(np.hsplit(A, 2)) #等于 print(np.split(A, 2, axis=1))
"""
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
"""


举报

相关推荐

0 条评论