You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用自定义CSV文件运行notears_linear函数?

问题:如何读取CSV文件作为notears_linear函数的输入?

已知以下代码可正常运行:

import numpy as np
X1 = np.random.rand(100, 5)
from notears.linear import notears_linear
W_est = notears_linear(X1, lambda1=0.1, loss_type='l2')

但将自有X1.csv文件上传至同一目录后,直接运行以下代码会提示X1.csv未定义:

from notears.linear import notears_linear
W_est = notears_linear(X1.csv, lambda1=0.1, loss_type='l2')
print(W_est)

请问如何正确读取并使用该CSV文件作为函数输入?


解决方法

notears_linear函数的第一个参数需要的是numpy数组类型的数据集,而不是文件名字符串。你需要先把CSV文件读取成numpy数组,再传入函数。

方法1:使用numpy读取CSV

import numpy as np
from notears.linear import notears_linear

# 读取CSV文件为numpy数组,delimiter根据你的CSV分隔符调整,默认逗号
X1 = np.genfromtxt('X1.csv', delimiter=',')
# 调用notears_linear函数
W_est = notears_linear(X1, lambda1=0.1, loss_type='l2')
print(W_est)

方法2:使用pandas读取CSV(适合带表头的场景)

如果你的CSV包含表头,用pandas读取更灵活,之后再转成numpy数组:

import pandas as pd
from notears.linear import notears_linear

# 读取CSV,header=0表示第一行是表头,无表头则设为None
df = pd.read_csv('X1.csv', header=0)
# 将DataFrame转换为numpy数组
X1 = df.values
# 调用函数
W_est = notears_linear(X1, lambda1=0.1, loss_type='l2')
print(W_est)

注意:若CSV中存在缺失值或非数值内容,需先做数据清洗,确保X1是纯数值的二维numpy数组。

内容的提问来源于stack exchange,提问作者Jonathen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 15:52:08