在python中向矩阵添加列

6 python numpy

在python中是否有某种方法可以将列添加到矩阵中.我想在python的矩阵开头添加一个列.mxn例如,我有1000x100矩阵,我想把它变成1000x101矩阵.我想ones在开头插入全部列的新列,即它将是我的新第一列.在python中有可能吗?

这是我的代码 - vector1是一个列表,cnt是1000

data=np.array(vector1)  
shape = ( cnt, 100 )
data=data.reshape(shape)
Run Code Online (Sandbox Code Playgroud)

现在,我想在开头添加一个新列

Yup*_*ing 17

您正在寻找的功能numpy.hstacknumpy.ones:

例如,

import numpy as np

X = np.random.uniform(size=(10,3))
n,m = X.shape # for generality
X0 = np.ones((n,1))
Xnew = np.hstack((X,X0))

print(X)
[[ 0.78614426  0.24150772  0.94330932]
 [ 0.60088812  0.20427371  0.19453546]
 [ 0.31853252  0.31669057  0.82782995]
 [ 0.71749368  0.54609844  0.74924888]
 [ 0.86883981  0.54634575  0.83232409]
 [ 0.89313181  0.8006561   0.05072146]
 [ 0.79492088  0.07750024  0.45762175]
 [ 0.92350837  0.20587178  0.76987197]
 [ 0.0092076   0.0044617   0.04673518]
 [ 0.69569363  0.3315923   0.15093861]]

print(X0)
[[ 1.]
 [ 1.]
 [ 1.]
 [ 1.]
 [ 1.]
 [ 1.]
 [ 1.]
 [ 1.]
 [ 1.]
 [ 1.]]

print(Xnew)
[[ 0.78614426  0.24150772  0.94330932  1.        ]
 [ 0.60088812  0.20427371  0.19453546  1.        ]
 [ 0.31853252  0.31669057  0.82782995  1.        ]
 [ 0.71749368  0.54609844  0.74924888  1.        ]
 [ 0.86883981  0.54634575  0.83232409  1.        ]
 [ 0.89313181  0.8006561   0.05072146  1.        ]
 [ 0.79492088  0.07750024  0.45762175  1.        ]
 [ 0.92350837  0.20587178  0.76987197  1.        ]
 [ 0.0092076   0.0044617   0.04673518  1.        ]
 [ 0.69569363  0.3315923   0.15093861  1.        ]]
Run Code Online (Sandbox Code Playgroud)


小智 5

我发现该numpy.c_函数在向矩阵添加列时非常方便。以下代码将向矩阵添加一列全为零的列。

import numpy as np

np.c_[np.ones((100,1)),X]

Run Code Online (Sandbox Code Playgroud)

这里,X是原始矩阵。