我有一个python数组,例如:
[[1],
[2],
[3],
[4]
]
I want to make it to:
[ [1 0 0 0],
[2 0 0 0 ],
[3 0 0 0],
[4 0 0 0]
]
这样做的python方法是什么? 假设我使用numpy。
答案 0 :(得分:1)
numpy.pad(array, pad_width, mode=None, **kwargs)
:
>>> np.pad(a, pad_width=((0, 0), (0, 3)), mode='constant', constant_values=0)
array([[1, 0, 0, 0],
[2, 0, 0, 0],
[3, 0, 0, 0],
[4, 0, 0, 0]])
答案 1 :(得分:0)
使用numpy.eye创建行向量。
>>> import numpy as np
>>> a = np.array([[1],[2],[3],[4]])
>>> b = np.eye(1, 4)
>>> b
array([[ 1., 0., 0., 0.]]
>>> c = a * b
>>> c
array([[ 1., 0., 0., 0.],
[ 2., 0., 0., 0.],
[ 3., 0., 0., 0.],
[ 4., 0., 0., 0.]])
零的串联可能更快,因为此示例使用矩阵乘法来实现所需的结果,而不是分配所需的大小。