NumPy提供了许多实用的函数和方法,可用于对数组进行分组。
在NumPy中,使用np.split()函数将数组分成子数组,使用np.array_split()函数将数组分成不等分的子数组。
np.split()
np.split()函数可以根据指定的轴将数组分割成多个子数组,语法如下:
np.split(ary, indices_or_sections, axis=0)
其中,参数ary是需要分割的数组,indices_or_sections可以是一个整数,指定每个子数组的大小,也可以是一个列表,指定分割点的位置,axis参数指定分割的轴。
示例代码如下:
import numpy as np
# 创建一个二维数组
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
# 将数组分成两个子数组
b = np.split(a, 2, axis=0)
print(b)
# 将数组分成三个子数组
c = np.split(a, 3, axis=1)
print(c)
运行结果:
[array([[1, 2, 3],
[4, 5, 6]]), array([[ 7, 8, 9],
[10, 11, 12]])]
[array([[ 1],
[ 4],
[ 7],
[10]]), array([[ 2],
[ 5],
[ 8],
[11]]), array([[ 3],
[ 6],
[ 9],
[12]])]
np.array_split()
np.array_split()函数与np.split()函数的功能类似,不同之处在于np.array_split()函数可以在无法均分数组的情况下,返回大小不一的子数组。语法如下:
np.array_split(ary, indices_or_sections, axis=0)
示例代码如下:
import numpy as np
# 创建一个一维数组
a = np.array([1, 2, 3, 4, 5, 6])
# 将数组分成三个子数组
b = np.array_split(a, 3)
print(b)
# 将数组分成四个子数组
c = np.array_split(a, 4)
print(c)
运行结果:
[array([1, 2]), array([3, 4]), array([5, 6])]
[array([1, 2]), array([3, 4]), array([5]), array([6])]
除了上述方法外,NumPy还提供了许多其他的数组分组方法。如np.vsplit()和np.hsplit()等,这些函数的作用和np.split()函数类似,都是将数组分割成多个子数组,不同之处在于分割的方向不同。
此外,NumPy还提供了np.partition()函数和np.argpartition()函数,用于对数组进行分区和分组排序等操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:NumPy数组分组(split,array_split)方法详解 - Python技术站