我正在填充一个多维数组(以允许在其他事物之间进行转置),而我已经找到了一系列方法来执行此操作,包括循环(np.pad
并逐行分配到一个大小控制的空数组)我似乎无法向量化这个操作。
MWE
a = np.arange(1,3)
b = np.arange(3,7)
c = np.arange(7,10)
source = np.array([a,b,c])
形式为:
>>> array([array([1, 2]), array([3, 4, 5, 6]), array([7, 8, 9])], dtype=object)
我想要的输出是:
>>> array([[ 1., 2., 1., 1.],
[ 3., 4., 5., 6.],
[ 7., 8., 9., 1.]])
在这个简单的案例中我用过:
desired = np.array([np.concatenate([a,np.ones(2)]),b,np.concatenate([c,np.ones(1)])])
(我的观点是,上面不会很好地扩展,因为你必须存储每个数组的长度 - 这也是阻止我使用np.pad
)的原因