如何在Python中将CSV数据读取为含X特征与y目标的嵌套数组
实现读取CSV生成指定嵌套数组的Python方案
嘿,这个需求其实挺 straightforward 的,我给你两种常用的实现方式,你可以根据自己的场景选:
方法一:用Python标准库csv(无需额外安装依赖)
如果你的数据量不大,用Python自带的csv模块就足够了,步骤清晰好理解:
- 导入
csv模块 - 打开CSV文件,逐行读取内容
- 把每一行的字符串数据转换成float类型
- 按照
[[[x1, x2], [y]]]的结构组装数组
示例代码:
import csv result = [] # 假设你的CSV文件名为data.csv,第一行是表头x1,x2,y with open('data.csv', 'r') as f: reader = csv.DictReader(f) # 用DictReader可以通过列名取数,更直观 for row in reader: # 提取x1、x2并转成float,组成特征列表 features = [float(row['x1']), float(row['x2'])] # 提取y并转成float,正负号会被保留 target = [float(row['y'])] # 组装成需要的子数组,添加到结果里 result.append([features, target]) print(result)
运行后就能得到你想要的嵌套数组结构啦。
方法二:用pandas(适合处理大数据,代码更简洁)
如果你的CSV数据量比较大,或者平时习惯用pandas做数据处理,那这个方法更高效省心:
import pandas as pd # 读取CSV文件,假设表头是x1,x2,y df = pd.read_csv('data.csv') # 用列表推导式快速生成目标结构 result = [[[row['x1'], row['x2']], [row['y']]] for _, row in df.iterrows()] print(result)
pandas会自动识别数值型列并转成float类型,省去手动转换的步骤,代码更简洁。
小提示
- 确保你的CSV文件列名和代码里的
x1、x2、y一致,如果列名不同,记得修改代码里的键名 - 如果CSV没有表头,方法一可以用
csv.reader,通过索引(如row[0]、row[1])取数;方法二可以加参数header=None,同样通过索引访问列
内容的提问来源于stack exchange,提问作者EngJb
相关产品推荐
相关产品推荐

