Python 如何将列添加到numpy数组中
我想在第一列的所有行上添加一列'1'。。。 例如,在:Python 如何将列添加到numpy数组中,python,numpy,Python,Numpy,我想在第一列的所有行上添加一列'1'。。。 例如,在: 9 8 4 3 4 5 3 2 1 之后: 1 9 8 4 1 3 4 5 1 3 2 1 到目前为止,我的代码是: import numpy as np import pandas as pd training = pd.read_csv('data.csv', header = None) training training.shape 输出=(300,14) 要将数据生成矩阵,请执行以下操作: trainingData =
9 8 4
3 4 5
3 2 1
之后:
1 9 8 4
1 3 4 5
1 3 2 1
到目前为止,我的代码是:
import numpy as np
import pandas as pd
training = pd.read_csv('data.csv', header = None)
training
training.shape
输出=(300,14)
要将数据生成矩阵,请执行以下操作:
trainingData = training.values
在所有行的第一列中插入一列1
featureVector = np.insert(featureVector, 0, 1, axis=0)
当我打印变量featureVector时,我看不到1…我如何才能做到这一点或修复它?您可以连接一个1列矩阵并
训练:
>>> import numpy as np
>>> training = np.array([9, 8, 4, 3, 4, 5, 3, 2, 1]).reshape(3, 3)
>>> np.concatenate((np.ones((training.shape[1], training)), a), axis=1)
array([[ 1., 9., 8., 4.],
[ 1., 3., 4., 5.],
[ 1., 3., 2., 1.]])
axis=1
用于指定应添加列。否则:
>>> np.concatenate(([[1,1,1]], training), axis=0)
array([[1, 1, 1],
[9, 8, 4],
[3, 4, 5],
[3, 2, 1]])
您还可以使用列\u堆栈
:
>>> np.column_stack((np.ones(training.shape[1]), training))
array([[ 1., 9., 8., 4.],
[ 1., 3., 4., 5.],
[ 1., 3., 2., 1.]])
这对我很有用:
array = training.values
np.concatenate(([np.ones(len(array))],array.T),axis=0).T
与常规:
输出:
[[1 9 8 4]
[1 3 4 5]
[1 3 2 1]]
尝试使用axis=1,因为您想更改列数。如果我想更改第一列中的300行,我是否必须进行循环?因此,基本上他/她把轴弄错了。不错+1只是好奇,为什么在pd.read\u csv上使用np.loadtxt()?np.loadtxt()能处理大型数据集吗?@KatZee刚刚看到了简单的输入数据,并认为这项工作可以用单个numpy
模块完成(没有pandas
)。当然,你可以继续使用熊猫
[[1 9 8 4]
[1 3 4 5]
[1 3 2 1]]