在网上看到了一些关于vsplit()函数和hsplit()函数的解释,感觉不是很好理解, 同时有的也不是很全面。这里我想根据我的个人理解,用我自己的语言表达出这两个函数的解释。
hsplit():按列对数组进行拆分
import numpy as np
x=np.arange(16).reshape(4,4)
print(x)
""""x=[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]"""
#将x按列拆分成2个数组,第二个参数表示拆分成几个数组
x_1=np.hsplit(x, 2)
print(x_1)
"""x_1=[array([[ 0, 1],
[ 4, 5],
[ 8, 9],
[12, 13]]),
array([[ 2, 3],
[ 6, 7],
[10, 11],
[14, 15]])]"""
#将x按特定列进行拆分,示例在第二列和第三列进行拆分。第二个参数表示拆分的位置
x_2=np.hsplit(x,(2,3))
print(x_2)
"""x_2=[array([[ 0, 1],
[ 4, 5],
[ 8, 9],
[12, 13]]),
array([[ 2],
[ 6],
[10],
[14]]),
array([[ 3],
[ 7],
[11],
[15]])]"""
y=np.arange(8).reshape(2,2,2)
print(y)
"""y=[[[0 1]
[2 3]]
[[4 5]
[6 7]]]"""
#注意三维数组的拆分,是对数组中的每个元素的列进行拆分,而不是对数组的列
y_1=np.hsplit(y,2)
print(y_1)
"""y_1=[array([[[0, 1]],
[[4, 5]]]),
array([[[2, 3]],
[[6, 7]]])]"""
vsplit():按行对数组进行拆分
相应的操作都和hsplit()相同,这里不再附代码。有兴趣的可以自己去尝试。