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)
谢谢帮助。

