矢量化粗糙阵列的填充

时间:2017-11-27 19:55:55

标签: python numpy

我正在填充一个多维数组(以允许在其他事物之间进行转置),而我已经找到了一系列方法来执行此操作,包括循环(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)的原因

0 个答案:

没有答案