news 2026/8/8 11:26:51

如何作为数据科学家使用 ChatGPT

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何作为数据科学家使用 ChatGPT

原文:如何作为数据科学家使用 ChatGPT


整个世界都听说过 ChatGPT,但根据最近的一条新闻 研究,只有 2%的人每天使用它。

我每天作为数据科学家用它做很多事情。它确实在某些方面提高了我的生产力 2 倍。

在这篇文章中,我想解释我是如何使用 ChatGPT 的,并希望它能给你一些新的想法,无论你是否是数据科学家,都能更经常地使用它来提高你的输出。

YouTube 视频链接

学习与学习

我最喜欢的一个提示是“像对我 5 岁孩子解释”(ELI5)。它基本上让 ChatGPT 用一种非常简单的方式向我解释一个主题,通常比许多在线资源都要好。

例如,如果我们运行“像对我 5 岁孩子解释循环神经网络”。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a87d04ddcbe7586744c5991283bfed20.png

ChatGPT 的示例输出。

这个类比非常出色,并且真正地构建了循环神经网络背后的直觉。

然后,我们可以开始深入挖掘,并更具体地询问关于数学、工作示例等,因为我需要更实际和深入地了解作为数据科学家实现循环神经网络。

这里的主要价值在于,我像使用一个可以以多种不同方式向我解释事物的私人导师一样使用 ChatGPT。这真的非常强大,可能会节省你大量时间在网上寻找那个对你有启发的解释。试试看,并告诉我你的进展如何!

单元测试

没有人不知道大多数技术专业人士不喜欢编写单元测试。虽然它们非常繁琐,但它们是必须完成的,因为它们确保你的代码是健壮的,并在部署到生产环境中时建立信心。

ChatGPT 可以通过提供你可以调整以测试代码边缘情况的测试模板来极大地加快这个过程。

让我们考虑一个计算斐波那契数列的函数:

deffibonacci_sequence(n):ifn<=0:return[]elifn==1:return[0]elifn==2:return[0,1]sequence=[0,1]foriinrange(2,n):next_fibonacci_number=sequence[-1]+sequence[-2]sequence.append(next_fibonacci_number)returnsequence

让我们将这个输入到 ChatGPT 中,要求它为我们函数编写单元测试:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e290ab46f9406a18c478c71f24f1cc35.png

请 ChatGPT 为我们编写单元测试。

这是 ChatGPT 生成的测试的完整输出:

importunittestdeffibonacci_sequence(n):ifn<=0:return[]elifn==1:return[0]elifn==2:return[0,1]sequence=[0,1]foriinrange(2,n):next_fibonacci_number=sequence[-1]+sequence[-2]sequence.append(next_fibonacci_number)returnsequenceclassTestFibonacciSequence(unittest.TestCase):deftest_negative_input(self):self.assertEqual(fibonacci_sequence(-1),[])deftest_zero_input(self):self.assertEqual(fibonacci_sequence(0),[])deftest_one_input(self):self.assertEqual(fibonacci_sequence(1),[0])deftest_two_input(self):self.assertEqual(fibonacci_sequence(2),[0,1])deftest_five_input(self):self.assertEqual(fibonacci_sequence(5),[0,1,1,2,3])deftest_ten_input(self):self.assertEqual(fibonacci_sequence(10),[0,1,1,2,3,5,8,13,21,34])if__name__=='__main__':unittest.main()

我在我的 PyCharm IDE 中运行后确认这可行。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c171dcac69c4378fd6ae543d2889b8ce.png

PyCharm 终端输出。

我无法告诉你这为我节省了多少时间。仅设置测试本身就需要相当一部分时间。这种方法让我可以专注于关键部分:找到可能破坏我函数的边缘情况。

如果你想了解更多关于单元测试的信息,请查看我之前的帖子。

Pytest 教程:单元测试简介

创建可视化

创建图表通常相当耗时,尤其是如果你正在添加多行和标签,并试图使图表看起来整体上更美观。我曾经花费数小时猛敲键盘,试图让 Matplotlib 给我想要的结果。这并不有趣,我不推荐这样做。

在 GPT-4 和 GPT-4o 之前,我会使用 ChatGPT-3.5 在 IDE 中运行来生成 Python 代码,以绘制我的图表。然而,现在这更加简单,因为它们有一种叫做高级分析的东西。你只需将数据交给它,它就会为你创建图表,并将相关的代码输出到屏幕上。

例如,让我们使用我从 Kaggle 获得的数据,其中包含Netflix 电影和电视节目(CC0 许可)。我所做的就是将其拖入 ChatGPT,并要求它为我解释数据:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/80d9ee7045a6e6aba33f018afedfc1bb.png

输入数据

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4c23ab286516d44ec70141e237a860e3.png

ChatGPT 的输出。

它还提供了它用来加载数据的 Python 代码,这样我可以确认它在幕后做了什么。然而,在这种情况下,它已经很好地识别了数据,所以我不需要进一步挖掘。

我现在可以要求它使用这些数据绘制一些东西。比如说,我们想要一个按拍摄国家划分的show_id条形图。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/9e7669e684681b3745b8974bd48dff19.png

创建图表的输入。

它为我们编写了代码,然后在聊天窗口中生成图表!

注意,窗口中的图表将不同于代码在 matplotlib 中生成的图表。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/cc3f1f50baef0758dfb25cd26c7ad13f.png

ChatGPT 按国家显示的条形图。

如我们所见,它相当混乱,因为它绘制了每个国家。让我们假设我们只想看前 10 个,其余的放在某个“其他”类别中。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/886189786795d1d41ffcb97daa45a7d0.png

ChatGPT 更新的提示和代码输出。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/36c62149ec93c74edb3d3abb40515503.png

按国家显示 Show_id 的条形图,显示前 10 名和其余部分在“其他”中。

这看起来好多了,而且图表质量也很高!

这是一个简单的例子,但它展示了 ChatGPT 在数据分析与可视化方面的强大功能。你甚至不需要会编码就能做到这一点;这当然有帮助,但并非必要条件,这使得它对广大受众来说非常易于接触。

重构代码

有时候,我在写代码时会偷懒,代码并不像它本可以那样优雅和简洁。这可能会导致错误,并使理解正在发生的事情变得困难(对大多数开发者来说是个噩梦)。

我通常会让 ChatGPT 将我的代码调整为“生产标准”,这是一个我发现能有效清理并使其看起来更专业、整体更美观的提示。

例如,考虑我在之前帖子中写的这段代码,它使一个时间序列平稳:

# Import packagesimportplotly.expressaspximportpandasaspdimportosimportnumpyasnp# Read in the datadata=pd.read_csv('../../Software Engineering /make-example/AirPassengers.csv')defplotting(title,data,x,y,save_file_path,x_label,y_label):"""General function to plot the passenger data."""fig=px.line(data,x=data[x],y=data[y],labels={x:x_label,y:y_label})fig.update_layout(template="simple_white",font=dict(size=18),title_text=title,width=650,title_x=0.5,height=400)ifnotos.path.exists("../images"):os.mkdir("../images")fig.write_image("../images/"+str(save_file_path))fig.show()# Plot the airline passenger dataplotting(title='Airline Passengers',data=data,save_file_path='passengers.png',x='Month',y='#Passengers',x_label='Date',y_label='Passengers')# Take the difference and plot itdata["Passenger_Diff"]=data["#Passengers"].diff()plotting(title='Airline Passengers',data=data,save_file_path='passengers_one_difference.png',x='Month',y='Passenger_Diff',x_label='Date',y_label='Passengers<br>Difference Transform')# Take the log and plot itdata["Passenger_Log"]=np.log(data["#Passengers"])plotting(title='Airline Passengers',data=data,save_file_path='passenger_log.png',x='Month',y='Passenger_Log',x_label='Date',y_label='Passenger<br>Log Transform')# Take the difference and log and plot itdata["Passenger_Diff_Log"]=data["Passenger_Log"].diff()plotting(title='Airline Passengers',data=data,save_file_path='passenger_difference_and_log.png',x='Month',y='Passenger_Diff_Log',x_label='Date',y_label='Passenger<br>Log and Difference')

让我们将其输入 ChatGPT,并要求它将其调整为“生产标准”和“更整洁”。

它生成的代码看起来像这样:

# Import packagesimportplotly.expressaspximportpandasaspdimportosimportnumpyasnp# Read in the datadata=pd.read_csv('../../Software Engineering /make-example/AirPassengers.csv')defplot_data(title,data,x,y,save_file_path,x_label,y_label):""" General function to plot the passenger data. Parameters: - title: Title of the plot - data: DataFrame containing the data - x: Column name for the x-axis - y: Column name for the y-axis - save_file_path: File path to save the image - x_label: Label for the x-axis - y_label: Label for the y-axis """fig=px.line(data,x=x,y=y,labels={x:x_label,y:y_label})fig.update_layout(template="simple_white",font=dict(size=18),title_text=title,width=650,title_x=0.5,height=400)output_dir="../images"os.makedirs(output_dir,exist_ok=True)fig.write_image(os.path.join(output_dir,save_file_path))fig.show()# Plot the airline passenger dataplot_data(title='Airline Passengers',data=data,x='Month',y='#Passengers',save_file_path='passengers.png',x_label='Date',y_label='Passengers')# Create transformed columns and plottransforms=[("Passenger_Diff",data["#Passengers"].diff(),'passengers_one_difference.png','Passengers<br>Difference Transform'),("Passenger_Log",np.log(data["#Passengers"]),'passenger_log.png','Passenger<br>Log Transform'),("Passenger_Diff_Log",np.log(data["#Passengers"]).diff(),'passenger_difference_and_log.png','Passenger<br>Log and Difference')]forcol_name,transform,file_name,y_labelintransforms:data[col_name]=transform plot_data(title='Airline Passengers',data=data,x='Month',y=col_name,save_file_path=file_name,x_label='Date',y_label=y_label)

如你所见,格式与 Pep8 指南一致,我们有文档字符串,并且它创建了一个遵循DRY原则的重复代码块的功能。总体来说,做得不错!

Python 确实有一些合适的格式化工具,如isort和black,但我发现 GPT 通常能更快、更好地完成任务。

如果你想了解更多关于代码质量的信息,请查看我之前的帖子。

数据科学家提高 Python 代码质量的指南

摘要及进一步思考

使用 ChatGPT 提高了我在许多方面的生产力,例如学习新事物、编写单元测试、进行分析和重构代码。我希望这篇文章能给你一些在你自己的工作领域尝试的想法。虽然我认为它不会取代我们,但它是一个强大的工具,你应该尽可能将其集成到你的工作流程中。

另一件事!

我提供一对一的辅导通话,我们可以讨论你需要的一切——无论是项目、职业建议,还是只是确定你的下一步。我在这里帮助你前进!

[与 Egor Howell 的一对一辅导通话]

职业指导、工作建议、项目帮助、简历审查topmate.io](https://topmate.io/egorhowell/1203300)

与我联系

  • YouTube

  • LinkedIn

  • Instagram

  • 网站

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 2:16:13

Langchain-Chatchat问答系统灰度期间知识库变更记录

Langchain-Chatchat 问答系统灰度期间知识库变更实践 在企业数字化转型的浪潮中&#xff0c;如何让沉睡在 PDF、Word 和内部文档中的知识“活”起来&#xff0c;正成为智能办公的关键命题。尤其是在金融、医疗、政务等对数据安全高度敏感的行业&#xff0c;传统依赖云端大模型的…

作者头像 李华
网站建设 2026/8/4 7:10:45

Langchain-Chatchat问答系统灰度期间宣传推广计划

Langchain-Chatchat问答系统灰度期间宣传推广计划 在企业知识管理日益复杂的今天&#xff0c;一个普遍的痛点正困扰着众多组织&#xff1a;关键制度、技术文档散落在各个部门的共享盘和员工电脑中&#xff0c;新人入职靠“口传心授”&#xff0c;老员工离职导致经验流失&#x…

作者头像 李华
网站建设 2026/8/7 7:45:17

Langchain-Chatchat结合Logstash集中日志采集

Langchain-Chatchat 与 Logstash 的融合&#xff1a;构建安全智能问答与可观测性一体化系统 在企业智能化转型的浪潮中&#xff0c;如何在保障数据安全的前提下实现知识高效利用&#xff0c;已成为技术架构设计的核心命题。尤其是在金融、制造、医疗等对隐私合规要求极高的行业…

作者头像 李华
网站建设 2026/8/8 0:52:31

智能物流仓库自动化操作手册

导语大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。欢迎大家使用我们的仓储物流技术AI智能体。新书《智能物流系统构成与技术实践》新书《智能仓储项目出海-英语手册》新书《智能仓储自动化项目&#xff1a;避坑手册》新书《智能仓储项目…

作者头像 李华
网站建设 2026/7/31 19:37:01

学术探索新利器:书匠策AI——本科硕士论文写作的隐形引擎

在学术的浩瀚海洋中&#xff0c;每一位研究者都是一艘孤独的航船&#xff0c;试图在知识的波涛中寻找到属于自己的新大陆。对于本科和硕士生而言&#xff0c;毕业论文的撰写无疑是这段航程中最具挑战性的部分。选题迷茫、文献浩如烟海、逻辑构建复杂、内容撰写繁琐……这些问题…

作者头像 李华
网站建设 2026/8/7 23:00:24

Langchain-Chatchat能否实现问答结果XML导出?

Langchain-Chatchat 能否实现问答结果 XML 导出&#xff1f; 在企业级智能系统日益普及的今天&#xff0c;一个常见的集成难题浮出水面&#xff1a;如何让先进的 AI 问答系统与老旧但关键的内部系统“对话”&#xff1f;比如&#xff0c;某公司部署了基于大模型的知识库助手来解…

作者头像 李华