关于python学习总结与心得体会

一、基础知识(以jupyter notebook为例)

1.最为常见的流程简介

(1)导入模组

工欲善其事,必先利其器。我们在做数据分析之前必须要导入对应的模组,否则接下来的工作便无法完成。导入模组时,通常使用import(模组全称)as(简称)函数导入模组:

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

(2)读取数据

读取数据会用到pandas模组,简称pd。读取数据一般会有两种方式:①将目标文件上传至jupyter notebook的主页中,再使用pandas读取(以csv格式文件为例):②直接将文件地址写入

①data = pd.read_csv(‘文件名称.csv’)

②data = pd.read_csv(‘文件地址’)

注:①用户可自定义数据集的名称②括号中必须要有英文的单引号,结尾要带.csv③注意地址斜杠,可能要将其反过来

个人推荐第一种方法,多一道工序但是能避免一些小错误。此外,用户可以自定义一组或多组数据来进行数据分析。

随后可以显示数据。定义完成后,换行直接键入自定义的数据集名称即可。如果导入的数据过长,可以用head()来显示前面的几个数据,默认为5个。

data.head(i)

i为用户输入的数值,若用户不输入则默认为5。

(3)定义变量

我们需要因变量和自变量才能进行OLS分析,我们当然也要找到两类变量。

我们可以自定义变量名称,也可用最常见的x,y,z来定义。随后,我们要从导入的数据集中获得我们想要的变量。下面举一个例子:

x = data[‘数据集某一自变量列的名称’]

y = data[‘数据集某一因变量列的名称’]

定义好之后我们就可以进行绘制散点图,或者进行回归分析等其他操作了。

2.模组功能简介

python有很多模组,功能也很齐全,这里不全部罗列,笔者以在学习过程中遇到的常见模组进行介绍说明:

(1)numpy:(numerical python)

①大量的数学函数。例如三角函数、指数函数、对数函数、统计函数等。这些函数可以直接应用于数组,对数组中的每个元素进行操作。

②随机数生成:NumPy可以生成符合各种概率分布的随机数数组。通过设置随机种子,可以实现可重复的随机数生成。

③数据类型和数据转换:NumPy支持多种数据类型,如整数、浮点数、复数等。它还提供了数组和其他数据类型之间的转换功能,方便数据的处理和分析。

(2)pandas:

①数据可视化:pandas模块是基于numpy的开源模块,同时也是集成Matplotlib库,可以直接在DataFrame中进行数据可视化操作。它提供了简单易用的绘图函数,如折线图、柱状图、散点图等,可以帮助用户更好地理解和展示数据。

②数据结构:pandas模块提供了两种主要的数据结构,即Series和DataFrame。Series是一维标记数组,类似于带有标签的一维数组;DataFrame是二维表格数据结构,类似于关系型数据库中的表格。

③支持修改,删除数据:使用data.drop(i)删除数据集中的某个数据。需要注意的是:计算机从0开始计数,故括号中的对应数据集中i+1位置的元素。

(3)matplotlib.pyplot:

matplotlib.pyplot是Matplotlib库中的子模块,用于创建和定制各种类型的图表和可视化,使得在Python中进行数据可视化操作更加简单和直观。

①绘图函数:matplotlib.pyplot提供了各种绘图函数,如plot、scatter、bar、hist等,可以创建不同类型的图表。

②可以根据数据的特点选择合适的绘图函数,并设置相关的参数以定制图表的样式和外观。

③图表样式和外观:matplotlib.pyplot允许用户自定义图表的样式和外观,包括线型、颜色、标记、填充、透明度等。可以通过设置属性和调用相关方法,使得图表更具吸引力和可读性。④多图和子图:matplotlib.pyplot支持创建多个图表和子图,可以在同一个图中绘制多个子图,或者在不同的图表中显示不同的数据。通过subplot函数可以灵活地布局和管理多个图表和子图。

⑤图表保存和展示:matplotlib.pyplot支持将图表保存为图片或其他文件格式,以方便后续使用和分享。同时,可以使用show函数在交互式环境中显示图表,或者使用savefig函数保存图表到指定文件

(4)statsmodels.api:

目前为止,笔者共接触到三种回归分析的方法:①使用LinearRegression模块,输出对应结果和参数②使用ols模块进行专门的最小二乘分析③statsmodels.api囊括诸多统计方法的模块。其中,在使用第二种和第三种时,我们常常要考虑添加一个截距(常量constant),在此引入两种导入常量的方式:

data.insert(1,constant,1)

data[‘constant’]=1

这两种导入截距的方式各有千秋:第一种可以灵活的选择插入位置和常量数值,虽说默认值是1,但读者想插入其他值也同样可行。但是在使用时需要注意,因为笔者在使用过程中发现这种方法每做一次OLS似乎都要重复一次;而第二种就显得正式且方便一些了,它近似于“全局变量”,而不像第一种所说近似于的“局部变量”的东西。

我们再举一个例子,这是一组较为完整的回归分析的语句:

model = sm.OLS(data[‘数据集因变量’],data[[‘数据集自变量1’,’数据集自变量2’]]).fit()

model.summary()

model依旧是用户自定义的模型名称,sm.OLS是statsmodels模组中最小二乘的模组,data是之前用户定义的数据集名称。在选择自变量因变量时用户要用中括号括起来,自变量可能由于涉及多个(例子中只提到了两个,实际分析中可能不止两个,十个也有可能)需要两对中括号,只敲一对会报错,报错原因是数据类型不匹配,但我们现在暂不讨论数据类型的问题。

(5)variance_inflation_factor:

这个包下面有一个statsmodels.stats.outliers_influence,故其全名应该为:from statsmodels.stats.outliers_influence import variance_inflation_factor

这个模组包主要用于计算并展示残差值图,cook值图,hadi图,PR图等统计领域可能会用到的(其实是笔者做作业要用到的)。关于这个模组,用户可能要定义一些能表示其中某些值的变量。例如:

outliers = modelXXX.get_influence()

res = outliers.resid_studentized_external

y_pred = model.fittedvalues

学过统计学的读者也许知道,残差图也是表示数据好坏的一种方法,一般来说看如下几点:①其上限和下限为一组垂直于纵轴的平行线②不能有明显的分区特征③残差值宜有正有负

二、一些心得想法

·寒假期间会不定期发表一些其他模块的学习笔记(例如PrettyTable,循环结构等)。这次只是给众多初学者做一个简单的分享介绍。笔者是一名研一新生,不是第一次接触python。之前自学python并没有涉及数据分析领域,而是一些实用性极强的一些领域:例如for,while循环,交互式访问等。研一上学期有一门课叫实用回归分析,这门课带领笔者进入了一个全新的世界,踏足数据分析领域后,仿佛开启了异世界的大门,带给了笔者截然不同的感觉。

·趣谈胶水语言

相信部分读者学python是应付考试,一般来说如果考试有要求写几个就写几个,而平时练习可以把想到的都带上,多多益善还不报错。

笔者在学习过程中也会借鉴其他大佬的代码,虽说这些代码来自不同区块也有着不同的功能,但当笔者把它们粘贴在一起发现竟能奇迹般运行。想必爬虫霸榜好多年,这或许也是其中原因之一(复粘一时爽,考试火z场)。

·记得之前有一位大佬讲过,一味让计算机print打印输出很无聊,而input函数成为了搭建计算机和用户的桥梁,允许二者做“互动”。这在生活中也是很常见的:密码输错会被冻结,互动游戏、过剧情类游戏也有input的“身影”。

·无论学习还是科研,都是由浅入深,不断循序渐进的过程。只要思想不滑坡,办法总比困难多。共勉!

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kbi8lnt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值