我试图为具有多个变量的线性回归编写代码。我正在将数据从TXT文件检索到"数据"变量。我试图将前两列初始化为可变X的X。在下一个步骤中,尝试在此2D数组中添加NP.Ones数组时,我获得了无法识别的数据。在添加" np.ones"数组和之后,我添加了数组x的代码和值。谁能告诉我我做错了什么?谢谢。我的代码
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('ex1data2.txt',header = None)
x = data.iloc[:,0:2]
y = data.iloc[:,2]
m=len(x)
y = y[:,np.newaxis]
x = (x - np.mean(x))/np.std(x)
ones = np.ones((m,1))
x = np.hstack((ones,x))
x在步骤np.hstack((
之前的值 0 1
0 0.131415 -0.226093
1 -0.509641 -0.226093
2 0.507909 -0.226093
3 -0.743677 -1.554392
4 1.271071 1.102205
5 -0.019945 1.102205
value sept np.hstack((
[[ 1.00000000e+00 1.31415422e-01 -2.26093368e-01]
[ 1.00000000e+00 -5.09640698e-01 -2.26093368e-01]
[ 1.00000000e+00 5.07908699e-01 -2.26093368e-01]
[ 1.00000000e+00 -7.43677059e-01 -1.55439190e+00]
[ 1.00000000e+00 1.27107075e+00 1.10220517e+00]
[ 1.00000000e+00 -1.99450507e-02 1.10220517e+00]]
我认为它正是您想要的。只是符号1.3141542E-01 = 1.31415422 * 10^( - 1(= 0.131415
基于问题的标题。如果您想继续使用Pandas DataFrame而不是接收Numpy Array,我建议您而不是
x = np.hstack((ones,x))
您使用
x = x.assign(ones = 1)
将x作为数据框,其中只有1个名为"一个"的新列。