創建數據
首先 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]])]
"""
最後
如果你覺得本文對你有幫助,希望可以關注並轉發,這樣我會更有動力更新的。
閱讀更多 僱個城管打天下y 的文章