Python/numpy array split
<languages />
NumPy拆分数组
分割NumPy阵列
拆分是联接的反向操作。
Joining将多个数组合并为一个,Spliting将一个数组拆分为多个。
我们用
array_split()
对于拆分数组,我们将要拆分的数组和拆分数传递给它。
例
将数组分为3部分:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6]) newarr = np.array_split(arr, 3) print(newarr)
注意: 返回值是一个包含三个数组的数组。
如果数组中的元素少于要求的数量,它将从末尾进行相应调整。
例
将数组分为4部分:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6]) newarr = np.array_split(arr, 4) print(newarr)
注意:
我们也有方法
split()
可用,但是当元素较少像上面的示例那样用于拆分时,它不会调整元素,
array_split()
工作正常,但
split()
会失败。
分割成阵列
的返回值
array_split()
方法是一个数组,其中包含每个拆分的数组。
如果将一个数组拆分为3个数组,则可以像使用任何数组元素一样从结果中访问它们:
例
访问拆分的数组:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6]) newarr = np.array_split(arr, 3) print(newarr[0]) print(newarr[1]) print(newarr[2])
分割二维数组
拆分二维数组时,请使用相同的语法。
使用
array_split()
方法,传入要拆分的数组以及要拆分的次数。
例
将二维数组拆分为三个二维数组。
import numpy as np arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]]) newarr = np.array_split(arr, 3) print(newarr)
上面的示例返回三个2-D数组。
让我们看另一个示例,这次2-D数组中的每个元素都包含3个元素。
例
将二维数组拆分为三个二维数组。
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]]) newarr = np.array_split(arr, 3) print(newarr)
上面的示例返回三个2-D数组。
此外,您可以指定要进行拆分的轴。
下面的示例还返回三个2-D数组,但它们沿行(轴= 1)分开。
例
沿行将二维数组拆分为三个二维数组。
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]]) newarr = np.array_split(arr, 3, axis=1) print(newarr)
替代解决方案正在使用
hsplit()
的反面
hstack()
例
使用
hsplit()
将二维数组沿行拆分为三个二维数组的方法。
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]]) newarr = np.hsplit(arr, 3) print(newarr)
注意:
类似的替代品
vstack()
and
dstack()
可作为
vsplit()
and
dsplit()
.