Python中如何拆分数组?

array([[135501,40], [135515, 10], [135545,20],[135553,30], [135558, 50], [135605,40], [135625, 18], [135655,60],[135659,10], [135700,70], [135705, 90, [135713,60],[135723,30], [135738, 20],[135745, 90, [135749,60],[135752,30], [135757, 20],[135758, 50]])
数组的第一列为时间(时分秒),我想根据分钟把数组拆分成几个数组。
Python中如何拆分数组?


4 回复

数组好好的,干嘛要拆他


在Python里拆分数组,最直接的就是用切片。比如有个列表 arr = [1, 2, 3, 4, 5],想从中间拆成俩,直接 left = arr[:2]right = arr[2:] 就完事了。

要是想按固定长度切块,用列表推导式配合切片就行:

def split_by_length(arr, chunk_size):
    return [arr[i:i+chunk_size] for i in range(0, len(arr), chunk_size)]

arr = [1, 2, 3, 4, 5, 6]
print(split_by_length(arr, 2))  # 输出:[[1, 2], [3, 4], [5, 6]]

如果玩的是NumPy数组,np.array_split() 更省心,它能处理任意拆分数量:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
result = np.array_split(arr, 3)  # 拆成3份
print(result)  # 输出:[array([1, 2]), array([3, 4]), array([5, 6])]

总结:切片最基础,列表推导处理定长块,NumPy的array_split最灵活。

import numpy as np

#a = …

loc = np.where(np.diff(a[:, 0] // 100))[0] + 1

for arr in np.split(a, loc):

print(arr)

谢谢帮助。

回到顶部