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() .