我有一个需要在给定矩阵的开头添加一列的函数。我有它的工作:
def add_ones(X):
return np.vstack((np.ones(X.shape[0]), X.T)).T
这样可行,但正如您所看到的,它将矩阵转换两次。我首先尝试了它而没有转置矩阵,但似乎np.ones(m)
总是产生一个我无法转置的行向量(我尝试做np.ones(m).T)
。
我的问题是,有更好的方法吗?我对numpy不是很熟悉,也不知道转置矩阵的性能下降。
答案 0 :(得分:2)
您可以使用np.concatenate
-
np.concatenate((np.ones((X.shape[0],1)),X),axis=1)
您还可以使用np.column_stack
-
np.column_stack((np.ones((X.shape[0])),X))
最后一个np.hstack
-
np.hstack((np.ones((X.shape[0],1)),X))
答案 1 :(得分:2)
您可以使用c _。
添加列 np.c_[np.ones(X.shape[0]), X]
http://docs.scipy.org/doc/numpy/reference/generated/numpy.c_.html