麻木不平等地分裂



我有这个数组:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

我一直在尝试制作这样的东西:

将此数组拆分为3(不等(,然后我想让它返回这样的东西:

  1. 第一个元素->第一阵列
  2. 第二元素->第二阵列
  3. 第三元素->第三阵列
  4. 第四元素->第一阵列
  5. 等等
[1, 4, 7, 10], [2, 5, 8], [3, 6, 9]

我试过这种

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
new_arrays = np.array_split(arr, 3)
print(new_arrays)

但它是这样分裂的:

[1 ,2, 3, 4], [5, 6, 7], [8, 9, 10]

我尝试了hsplit,它有点管用,但需要等分,这对我的数据集来说是不可能的。

我希望我能正确理解你的问题。您可以创建n新列表,然后使用itertools.cycle将值附加到每个子列表:

from itertools import cycle
def my_split(arr, n):
out = [[] for _ in range(n)]
for v, l in zip(arr, cycle(out)):
l.append(v)
return out

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_arrays = my_split(lst, 3)
print(new_arrays)

打印:

[[1, 4, 7, 10], [2, 5, 8], [3, 6, 9]]

最新更新