📅  最后修改于: 2023-12-03 15:07:44.931000             🧑  作者: Mango
在数据科学和机器学习中,我们经常需要按照某些标准来拆分数组。NumPy是一个Python科学计算包,它提供了许多方法来拆分数组。
我们将在本文中介绍如何使用NumPy拆分数组。涵盖的主题如下:
拆分数组的方法
如何拆分数组
示例代码
NumPy提供了两种方法来拆分数组,分别是水平切割和垂直切割。
水平切割是将数组水平地分成几个部分。
垂直切割是将数组垂直地分成几个部分。
要按水平方向拆分数组,我们需要使用numpy.hsplit()
方法。它接受两个参数:
要拆分的原始数组
要拆分成的“份数”,即要将数组分成几个部分。
例如,如果要将一个形为(3, 6)的数组分成两个部分,则可以执行以下操作:
import numpy as np
arr = np.arange(18).reshape(3,6)
split_arr = np.hsplit(arr, 2)
在这个例子中,我们将数组切成了两个等大小的部分,并将结果存储在split_arr
变量中。
要按垂直方向拆分数组,我们需要使用numpy.vsplit()
方法。它接受两个参数:
要拆分的原始数组
要拆分成的“份数”,即要将数组分成几个部分。
例如,如果要将一个形为(6, 3)的数组分成两个部分,则可以执行以下操作:
import numpy as np
arr = np.arange(18).reshape(6,3)
split_arr = np.vsplit(arr, 2)
在这个例子中,我们将数组切成了两个等大小的部分,并将结果存储在split_arr
变量中。
下面是一个完整的示例代码,展示了如何在NumPy中拆分数组。
import numpy as np
# 水平分割示例
arr1 = np.arange(18).reshape(3,6)
split_arr1 = np.hsplit(arr1, 2)
print("拆分前原始数组:")
print(arr1)
print("水平分割后结果数组:")
print(split_arr1)
# 垂直分割示例
arr2 = np.arange(18).reshape(6,3)
split_arr2 = np.vsplit(arr2, 2)
print("拆分前原始数组:")
print(arr2)
print("垂直分割后结果数组:")
print(split_arr2)
输出结果为:
拆分前原始数组:
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]]
水平分割后结果数组:
[array([[ 0, 1, 2],
[ 6, 7, 8],
[12, 13, 14]]), array([[ 3, 4, 5],
[ 9, 10, 11],
[15, 16, 17]])]
拆分前原始数组:
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]
[12 13 14]
[15 16 17]]
垂直分割后结果数组:
[array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]]), array([[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]])]
在这个示例代码中,我们首先使用numpy.hsplit()
方法将一个数组切成了两个等大小的部分,然后使用numpy.vsplit()
方法将另一个数组切成了两个等大小的部分。最后,我们打印了原始数组和拆分后的结果数组。