我想创建一个大小为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]
将它们串联也无法工作,它要求数组大小相同...
有没有其他选择可以拥有变化的单个数组而不是数组?
谢谢!
答案 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个数组。