Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python格式化和切片数组-为线性回归准备数据_Python_Arrays_Numpy_Scikit Learn_Linear Regression - Fatal编程技术网

使用Python格式化和切片数组-为线性回归准备数据

使用Python格式化和切片数组-为线性回归准备数据,python,arrays,numpy,scikit-learn,linear-regression,Python,Arrays,Numpy,Scikit Learn,Linear Regression,我知道这是一个非常基本的问题,但我正在努力正确格式化元组。 我有一个csv文件,其头是: id x1 x2 x3 y1 y2 1 23 45 31 2 5 2 34 5 21 3 12 3 234 4 26 4 20 .... 我正在构建一个多目标线性回归模型(我将使用scikit learn中的MultiOutputRegressor),因此我想将数据拆分为X(然后在训练集和测试集中拆分)和目标Y。我导入csv,如下所示: with op

我知道这是一个非常基本的问题,但我正在努力正确格式化元组。 我有一个csv文件,其头是:

id   x1  x2  x3  y1 y2
 1   23  45  31  2  5
 2   34  5   21  3  12
 3   234 4   26  4  20
....
我正在构建一个多目标线性回归模型(我将使用scikit learn中的MultiOutputRegressor),因此我想将数据拆分为X(然后在训练集和测试集中拆分)和目标Y。我导入csv,如下所示:

with open('data.csv', newline='') as csvfile:
    data = list(csv.reader(csvfile))
所以我得到了一个数组列表。但是如何访问数组中的元素呢?我的X集将是x1、x2、x3字段的所有值(然后我将选择X的一些行来构建Xtrain);我的Y集是y1,y2的所有值。 我的最终目标是:

X= [[23 45 31]
    [34 5 21]
    [234 4 26]
    ...]

Y=[[2,5]
   [3,12]
   [4,20] 
   ...]
我怎样才能做到这一点?
或者:如何将我所说的稀疏矩阵中的结构化数据分组,这是scikit learn线性回归函数的有效参数?

您可以使用numpy操作数组:

import numpy as np
data = np.array(data)    # Transform list to numpy array
data = data[1:,]         # Keep all lines except the header (first line)
y_col_index = 3
X = data[:,:y_col_index] # Select the first columns
Y = data[:,y_col_index:] # Select the last columns

可以使用numpy操作数组:

import numpy as np
data = np.array(data)    # Transform list to numpy array
data = data[1:,]         # Keep all lines except the header (first line)
y_col_index = 3
X = data[:,:y_col_index] # Select the first columns
Y = data[:,y_col_index:] # Select the last columns

Victor Daplasse的答案可能更直截了当,但我总是更喜欢使用pandas来读取和预处理csv文件

import pandas as pd
import numpy as np

data = pd.read_csv('data.csv')
X = np.array(data[['x1', 'x2', 'x3']])
Y = np.array(data[['y1', 'y2']])

Victor Daplasse的答案可能更直截了当,但我总是更喜欢使用pandas来读取和预处理csv文件

import pandas as pd
import numpy as np

data = pd.read_csv('data.csv')
X = np.array(data[['x1', 'x2', 'x3']])
Y = np.array(data[['y1', 'y2']])
你看过熊猫(和小熊猫)吗?你看过熊猫(和小熊猫)吗?