这是一个将numpy数组按照第一列的值进行分割的解决方法:
import numpy as np
# 创建一个示例数组
arr = np.array([[1, 2, 3], [4, 5, 6], [1, 7, 8], [4, 9, 10], [1, 11, 12]])
# 根据第一列的值进行分割
split_arr = np.split(arr, np.where(np.diff(arr[:, 0]))[0]+1)
# 打印分割结果
for sub_arr in split_arr:
print(sub_arr)
输出结果:
[[1 2 3]
[4 5 6]]
[[1 7 8]]
[[4 9 10]]
[[1 11 12]]
这段代码首先使用np.diff(arr[:, 0])
计算第一列元素的差异,然后用np.where
找到差异不为0的位置。这些位置表示了分割点的索引。接下来,使用np.split
根据这些索引把数组分割成多个子数组。最后,使用循环打印出分割后的子数组。
下一篇:按照第一列的值来排列在列中的值