如何在Python中创建矩阵或将2D数组转换为矩阵?

时间:2013-09-08 17:34:57

标签: python arrays numpy matrix matrix-multiplication

我希望能够在Python中从2D数组中提取行或列,以便保留2D形状并可用于矩阵乘法。但是,我无法在documentation中找到最好的方法。例如,我可以使用

a = np.zeros(shape=(6,6)) 

创建一个数组,但是[:,0]的形状为(6,),我不能将它乘以形状矩阵(6,1)。我是否需要为每个矩阵乘法将数组的行或列重新整形为矩阵,还是有其他方法可以进行矩阵乘法?

1 个答案:

答案 0 :(得分:2)

您可以直接使用np.matrix

>>> a = np.zeros(shape=(6,6)) 
>>> ma = np.matrix(a)
>>> ma
matrix([[ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.]])
>>> ma[0,:]
matrix([[ 0.,  0.,  0.,  0.,  0.,  0.]])

或者您可以使用np.newaxis

添加维度
>>> a[0,:][np.newaxis, :]
array([[ 0.,  0.,  0.,  0.,  0.,  0.]])