在python中是否有某种方法可以将列添加到矩阵中。我想在python中的mxn
矩阵的开头添加一列。例如,我有1000x100
矩阵和我想把它变成1000x101
矩阵。我想在开头插入包含所有ones
的新列,即它将是我的新第一列。在python中可以吗?
这是我的代码 -
vector1
是一个列表,cnt
是1000
data=np.array(vector1)
shape = ( cnt, 100 )
data=data.reshape(shape)
现在我想在所有的
开头添加一个新列答案 0 :(得分:16)
您在numpy.hstack
和numpy.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. ]]
答案 1 :(得分:0)
我发现numpy.c_
函数非常适合在矩阵中添加一列。
以下代码将在矩阵中添加一列全零。
import numpy as np
np.c_[np.ones((100,1)),X]
在这里,X
是原始矩阵。
答案 2 :(得分:0)
data=np.loadtxt('ex1data1.txt',delimiter=',')
X=data[:,0]
Y=data[:,1]
X=(np.column_stack((np.ones(np.size(X)),X)))
打印x给出
[[ 1. 6.1101]
[ 1. 5.5277]
[ 1. 8.5186]
[ 1. 7.0032]
[ 1. 5.8598]
[ 1. 8.3829]
[ 1. 7.4764]
[ 1. 8.5781]
[ 1. 6.4862]
[ 1. 5.0546]
[ 1. 5.7107]
[ 1. 14.164 ]
[ 1. 5.734 ]
[ 1. 8.4084]
[ 1. 5.6407]
[ 1. 5.3794]
[ 1. 6.3654]
[ 1. 5.1301]
[ 1. 6.4296]
[ 1. 7.0708]
[ 1. 6.1891]
[ 1. 20.27 ]
[ 1. 5.4901]
[ 1. 6.3261]
[ 1. 5.5649]
[ 1. 18.945 ]
[ 1. 12.828 ]
[ 1. 10.957 ]
[ 1. 13.176 ]
[ 1. 22.203 ]
[ 1. 5.2524]
[ 1. 6.5894]
[ 1. 9.2482]
[ 1. 5.8918]
[ 1. 8.2111]
[ 1. 7.9334]
[ 1. 8.0959]
[ 1. 5.6063]
[ 1. 12.836 ]
[ 1. 6.3534]
[ 1. 5.4069]
[ 1. 6.8825]
[ 1. 11.708 ]
[ 1. 5.7737]
[ 1. 7.8247]
[ 1. 7.0931]
[ 1. 5.0702]
[ 1. 5.8014]
[ 1. 11.7 ]
[ 1. 5.5416]
[ 1. 7.5402]
[ 1. 5.3077]
[ 1. 7.4239]
[ 1. 7.6031]
[ 1. 6.3328]
[ 1. 6.3589]
[ 1. 6.2742]
[ 1. 5.6397]
[ 1. 9.3102]
[ 1. 9.4536]
[ 1. 8.8254]
[ 1. 5.1793]
[ 1. 21.279 ]
[ 1. 14.908 ]
[ 1. 18.959 ]
[ 1. 7.2182]
[ 1. 8.2951]
[ 1. 10.236 ]
[ 1. 5.4994]
[ 1. 20.341 ]
[ 1. 10.136 ]
[ 1. 7.3345]
[ 1. 6.0062]
[ 1. 7.2259]
[ 1. 5.0269]
[ 1. 6.5479]
[ 1. 7.5386]
[ 1. 5.0365]
[ 1. 10.274 ]
[ 1. 5.1077]
[ 1. 5.7292]
[ 1. 5.1884]
[ 1. 6.3557]
[ 1. 9.7687]
[ 1. 6.5159]
[ 1. 8.5172]
[ 1. 9.1802]
[ 1. 6.002 ]
[ 1. 5.5204]
[ 1. 5.0594]
[ 1. 5.7077]
[ 1. 7.6366]
[ 1. 5.8707]
[ 1. 5.3054]
[ 1. 8.2934]
[ 1. 13.394 ]
[ 1. 5.4369]]
我发现column_stack正常工作...希望有帮助