拆分是联接的逆操作。
连接将多个数组合并为一个,而拆分将一个数组分解为多个。
我们用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)
亲自试一试 »
上面的示例返回三个二维数组。
让我们看另一个例子,这次二维数组中的每个元素包含 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)
亲自试一试 »
上面的示例返回三个二维数组。
此外,您还可以指定要围绕哪个轴进行分割。
下面的示例也返回三个二维数组,但它们沿行(轴=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()
和dstack()
可用为vsplit()
和dsplit()
。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!