在python中向矩阵添加列
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/32827269/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Adding columns to matrix in python
提问by
Is there some way in python to add columns into a matrix.I want to add a column in the beginning of my mxn
matrix in python.Say for example,I have 1000x100
matrix and I want to make it into 1000x101
matrix. I want to insert new column having all ones
in the beginning i.e. it will be my new first column. Is it possible in python?
python中是否有某种方法可以将列添加到矩阵中。我想在python中的矩阵的开头添加一列。mxn
比如说,我有1000x100
矩阵,我想把它变成1000x101
矩阵。我想插入一ones
开始就包含所有内容的新列,即它将成为我新的第一列。在python中可能吗?
Here is my code-
vector1
is a list, cnt
is 1000
这是我的代码 -
vector1
是一个列表,cnt
是 1000
data=np.array(vector1)
shape = ( cnt, 100 )
data=data.reshape(shape)
Now to this I want to add a new column at beginning with all ones
现在,我想在所有列开头添加一个新列
采纳答案by YuppieNetworking
The function you are looking for in numpy.hstack
and numpy.ones
:
您正在寻找的功能numpy.hstack
和numpy.ones
:
For example,
例如,
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. ]]
回答by Sukesh Kaul
I found the numpy.c_
function pretty handy at adding a column to an matrix.
The following code would add a column with all zeros to the matrix.
我发现该numpy.c_
函数在向矩阵中添加一列时非常方便。以下代码将向矩阵添加一个全为零的列。
import numpy as np
np.c_[np.ones((100,1)),X]
Here, X
is the original matrix.
这里,X
是原始矩阵。
回答by Navin Shrinivas
data=np.loadtxt('ex1data1.txt',delimiter=',')
X=data[:,0]
Y=data[:,1]
X=(np.column_stack((np.ones(np.size(X)),X)))
printing x gives
打印 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]]
I found column_stack working flawlessly...hope it helps
我发现 column_stack 工作完美......希望它有帮助