用numpy进行python矩阵操作

时间:2015-06-14 17:02:36

标签: python numpy

我有一个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。

2 个答案:

答案 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.]])

零的串联可能更快,因为此示例使用矩阵乘法来实现所需的结果,而不是分配所需的大小。