numpy数组内部具有不同大小的数组

时间:2019-05-24 14:46:45

标签: python arrays numpy

我想创建一个大小为np.array的3D output。大小为(5,a,b)的数组; a和b变化(b减小):

(a,b) = (1000,20)
(a,b) = (1000,19)
(a,b) = (1000,18)
(a,b) = (1000,17)
(a,b) = (1000,16)

我可以为此创建一个数组数组,但是稍后我想获取所有数组的第一列(无循环),那么我将无法使用:

output[:,:,0]

将它们串联也无法工作,它要求数组大小相同...

有没有其他选择可以拥有变化的单个数组而不是数组?

谢谢!

2 个答案:

答案 0 :(得分:0)

就像@Divakar所说的,用类型object创建一个空数组,并将不同大小的数组分配给它们各自的索引。

import numpy as np

arrs = [np.ones((5, i, 10 - i)) for i in range(10)]
arrs[0].shape
(5, 0, 10)
arrs[1].shape
(5, 1, 9)
out = np.emtpy(len(arrs), dtype=object)
out[:] = arrs
out[0].shape
(5, 0, 10)
out[1].shape
(5, 1, 9)

答案 1 :(得分:-1)

也许您可以列出并添加这5个数组。