首页 > 解决方案 > 如何将numpy数组列表拆分为n个子列表

问题描述

我有一个存储在列表中的数组,并且想要拆分列表子列表。这是我的清单:

all_data=[np.array([[1., 2.]]), np.array([[7., 7.], [4., 1.]]),\
          np.array([[-1., 4.], [1., 9.]]), np.array([[3., 0.]]),\
          np.array([[0., -2.]]), np.array([[6., 1.], [3., 5.]])]

它有 6 个数组,我想将它拆分为两个子列表。第一个子列表包括前三个数组,第二个包含最后三个数组。这将是:

spl_data=[[np.array([[1., 2.]]), np.array([[7., 7.], [4., 1.]]),\
           np.array([[-1., 4.], [1., 9.]])],\
          [np.array([[3., 0.]]),\
           np.array([[0., -2.]]), np.array([[6., 1.], [3., 5.]])]]

我尝试了填充功能:

def chunks(lst, n):
    for i in range(0, len(lst), n):
        yield lst[i:i + n]

然后我尝试了以下方法来获得我想要的,但没有成功:

n=2
spl_data=list(chunks(all_data, n))

我非常感谢您提前提供的任何帮助。

标签: pythonarrayslistsplit

解决方案


def chunkIt(all_data, num):
avg = len(all_data) / float(num)
out = []
last = 0.0

while last < len(all_data):
    out.append(all_data[int(last):int(last + avg)])
    last += avg

return out

推荐阅读