news 2026/2/7 23:49:24

如何作为数据科学家使用 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/2/5 9:37:12

Langchain-Chatchat结合SkyWalking实现链路追踪

Langchain-Chatchat 结合 SkyWalking 实现链路追踪的深度实践 在企业级 AI 应用落地过程中&#xff0c;一个常被忽视但至关重要的问题浮出水面&#xff1a;系统“跑得起来”&#xff0c;却“看不透”。尤其是在基于私有知识库的智能问答场景中&#xff0c;用户一句简单的提问背…

作者头像 李华
网站建设 2026/2/4 7:55:28

【2025最新】掌上看家采集端下载安装教程:全平台图文步骤详解,手机与电脑都能轻松配置

在智能安防与远程监控场景中&#xff0c;手机端实时监控、远程回看、移动告警已经逐渐成为主流。许多用户在搜索相关软件时&#xff0c;都会接触到“掌上看家”这一应用。而在使用掌上看家过程中&#xff0c;若想实现实时视频采集、设备共享、远程传输&#xff0c;就必须先正确…

作者头像 李华
网站建设 2026/2/4 7:36:35

深度学习不同GPU性能比较

A100和A800A800和A100的区别是A800的NVlink带宽受到限制&#xff0c;多卡性能比A100差H100H100是A100的升级版&#xff0c;算力提升3倍RTX4090和A100比较&#xff1a;在单卡上4090比A100算力还更高一点。但是4090的显存会低很多&#xff0c;多卡性能会比4090强

作者头像 李华
网站建设 2026/2/6 5:42:14

集体好奇心深度赋能团队创新

集体好奇心深度赋能团队创新 关键词:集体好奇心、团队创新、赋能机制、创新文化、知识共享 摘要:本文聚焦于集体好奇心对团队创新的深度赋能作用。首先介绍了研究的背景、目的、预期读者和文档结构等内容。接着阐述了集体好奇心和团队创新的核心概念及二者的联系,并给出了相…

作者头像 李华
网站建设 2026/2/5 17:33:53

2024 年我将如何从头开始学习 Python

原文&#xff1a;towardsdatascience.com/how-i-would-learn-python-in-2024-from-zero-b1c5edcdec84 现在&#xff0c;Python 是数据科学领域的首选语言。大多数前沿的机器学习库都是用 Python 编写的&#xff0c;你几乎找不到不要求 Python 作为要求的招聘数据科学职位。 然…

作者头像 李华