网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

避开这10大编码错误,你的数据科学之路能更顺畅吗?

GG网络技术分享 2025-11-23 21:44 3


硬编码其他人无法访问的路径

哎呀, 小宝宝们,你们知道什么是硬编码吗?就是那种写在代码里的路径,别人kan不到也改不了就像把秘密藏在了小盒子里一样。 当冤大头了。 来kankan我们的代码吧:


def process_data:
    data = do_stuff
    data.to_pickle
    data = pd.read_csv
    process_data
    df_train = pd.read_pickle
    model = sklearn.svm.SVC
    model.fit
    

解决方案:用线性链接函数,或者写一组有依赖关系的任务。Ke以用 d6tflow 或者 airflow,这样大家就Neng轻松访问啦!

没有写单元测试

单元测试就像检查小玩具一样,kankan它是不是douNeng正常运行。 在理。 但有些人就是不喜欢写测试,觉得麻烦。kankan这个:


def some_complicated_function:
    datadata = data!='wrong']
    datadata = data.groupby.apply)
    datadata = data]
    return data
    

解决方案:即便你Yi经完成了分析,也要花时间注释一下你Zuo过什么。你会感谢自己的,当然其他人会geng加感谢你!这样你kan起来会geng专业!

使用 Jupyter notebook

啊这... 小宝贝们, Jupyter notebook hen好玩,但有时候它也会让你犯错。kankan这个例子:


import pandas as pd
df = pd.read_csv # fails
do_stuff
    

说句可能得罪人的话... 解决方案:使用相对路径、 全局路径配置变量或 d6tpipe,这样其他人就Ke以轻易访问你的数据了。

写 for 循环

写 for 循环就像玩小火车一样,一节一节地跑。但有些火车太长了会跑得慢慢的。来kankan这个:,太离谱了。


def process_data:
    data = do_stuff
    data.to_pickle
    data = pd.read_csv
    process_data
    df_train = pd.read_pickle
    

解决方案:用 parquet 或者其他带有数据模式的二进制数据格式,Zui好还Neng压缩数据。 何不... d6tflow Ke以自动将数据输出存储为 parquet,这样你就不用解决这个问题了。

用 Git 提交数据

Git 是一个hen棒的玩具,Ke以帮你保存代码的每一个变化。但是Ru果数据太大, 大胆一点... Git 就可Neng不高兴了。来kankan这个:

https://towardsdatascience.com/-reasons-why-your-machine-learning-code-is-probably-bad-c291752e4953,基本上...

物超所值。 大多数人现在dou会版本控制他们的代码。在共享数据时可Nenghen容易将数据文件添加到版本控制中。对一些小文件来说这没什么问题。但 git 无法优化数据,特别是对大型文件而言。

没有注释代码

注释就像是在玩具旁边贴上标签,告诉别人这个玩具是用来Zuo什么的。 优化一下。 来kankan这个:


# data.csv
# ingest.py
# or-data.csv
# output.png
# report.html
# run.py
    

解决方案:对目录进行分类, 比如数据、报告、代码等。参阅 Cookiecutter Data Science 或 d6tflow 项目模板,并用问题 中提到的工具存储以及共享数据。

没有共享代码中引用的数据

小宝贝们, 数据就像小石头一样,有时候我们需要用到不同的石头来Zuo不同的东西。 纯属忽悠。 来kankan这个:


git add data.csv
    

解决方案:使用问题 中提到的工具来存储和共享数据。Ru果你真的需要对数据进行版本控制, 请参阅 d6tpipe、DVC 和 Git Large File Storage,雪糕刺客。。

写函数而不是 DAG

Jupyter notebook hen容易上手,但规模太小。

翻车了。 这个结论还有一些争议——Jupyter notebook 就像 CSV 一样常用。hen多人dou会用到它们。但这并不Neng让它们变得geng好。Jupyter notebook 助长了上面提到的许多不好的软件工程习惯, 特别是:

把数据存成 csv 或 pickle

小宝贝们,CSV 和 pickle hen方便,但它们并不是Zui好的选择。来kankan这个:


import pandas as pd
df1 = pd.read_csv # fails
do_stuff
    

雪糕刺客。 解决方案:用 d6tpipe 共享代码中的数据文件, 或者将数据文件上传到 S3/网页/Google 云等,还Ke以将数据文件保存到数据库中,以便收件人检索文件。

将数据和代码混在一起

小宝贝们, 把数据和代码混在一起就像把糖和盐混在一起一样, 换个赛道。 会让人hen困惑。来kankan这个:

当前名称:数据科学家易犯的十大编码错误,你中招了吗?

我们都经历过... 分享网址:https://www.cdcxhl.com/news/.html

太刺激了。 我明白你急着Zuo分析。于是你把代码拼凑起来得到后来啊,把后来啊交给你的客户或者老板。一周之后他们找到你,问你「你Neng改掉 xyz 吗?」或「你Nenggeng新一下后来啊吗?」。然后你和自己的代码大眼瞪小眼,既不记得你为什么要这么Zuo,也不记得你Zuo过什么。现在想象一下其他人运行这段代码时的心情。


提交需求或反馈

Demand feedback