需要帮助将PANDAS DATAFRAME(ILOC)转换为Numpy数组



我试图为具有多个变量的线性回归编写代码。我正在将数据从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个名为"一个"的新列。

最新更新