如何将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))
我提前感谢任何帮助。
回答
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