Numpy 的 Split 方法能根据指定的条件,将一个数组分割成多个数组
分割方式
NumPy 有下列几种分割数组元素的方法:
| 方法 | 参数 | 说明 |
|---|---|---|
| numpy.split()、numpy.array_split() | num,arr | 分割数组,返回指定数量的新数组。 |
| numpy.hsplit() | arr, num | 水平分割数组,返回指定数量的新数组。 |
| numpy.vsplit() | arr, num | 垂直分割数组,返回指定数量的新数组。 |
numpy.split()、numpy.array_split()
numpy.split()、numpy.array_split()会分割数组,返回指定数量的新数组,第一个参数 arr 维度原本的数组,第二个参数为要分割的数量,也可以设置第三个参数,0 为水平分割,1 为垂直分割。
(numpy.split() 分割的数值,一定能让原始数组的原始数量整除 比如:数组有 10 个元素,你分割数组 是 3,不能整除,肯定报错)
import numpy as np
a = np.array([1,2,3,4,5,6])
b = np.array_split(a, 3)
c = np.split(a, 3)
print(b) # [array([1, 2]), array([3, 4]), array([5, 6])]
print(c) # [array([1, 2]), array([3, 4]), array([5, 6])]
下方会将一个二维数组,按照水平或垂直分割的设置,分割成两个新数组( 因为数量无法整除,所以不能使用 numpy.split()
import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
b = np.array_split(a, 2)
c = np.array_split(a, 2, 1)
print(b) # [array([[1, 2],[3, 4]]), array([[5, 6]])]
print(c) # [array([[1],[3],[5]]), array([[2],[4],[6]])]
numpy.hsplit()
numpy.hsplit() 会水平分割数组,返回指定数量的新数组 ( 若原本数组的元素数量,无法整除分割数量,会发生错误)
import numpy as np
a = np.array([[1,1,1],[2,2,2],[3,3,3]])
b = np.hsplit(a, 3)
print(b) # [array([[1],[2],[3]]), array([[1],[2],[3]]), array([[1],[2],[3]])]
numpy.vsplit()
numpy.vsplit 会垂直分割数组,返回指定数量的新数组 ( 若原本数组的元素数量,无法整除分割数量,会发生错误 )。
import numpy as np
a = np.array([[1,1,1],[2,2,2],[3,3,3]])
b = np.vsplit(a, 3)
print(b) # [array([[1, 1, 1]]), array([[2, 2, 2]]), array([[3, 3, 3]])]