length = my_len(“http://www.nowcoder.com/link/pc_kol_bzwh”)
print(length)
在函数内实现加减乘除,比如计算出前两天的订单,前两年的订单,每天只需要调用函数即可
6、循环
循环是相对抽象的点,你就想象计算机不断的运行一次逻辑,这次逻辑可以递增,递减,的各种运行,来实现一些诸如【累计求和】这样的逻辑
Python中的循环语句有 2 种,分别是 while 循环和 for 循环
add = “http://www.nowcoder.com/link/pc_kol_bzwh”
#for循环,遍历 add 字符串
for ch in add:
print(ch,end=“”)
运行结果为:
http://www.nowcoder.com/link/pc_kol_bzwh
我自己学的时候,其实比c来说更痛苦的是,这个“ch”他很不规范,一般在c里面就写ijk,好理解,实际上这里的ch就类比c里面的ijk,意思是有这么一个扫描机器人,对着“add”这个字符串扫过去,每扫一次记一个数,记到ch这个东西里,最后把它输出来。
循环可以做很多事,测试不同输入下(吧要输入的变成字符串,然后让程序遍历),函数的结果,然后输出结果(比如拟合的误差值,来直接判断哪个变量更合适)
以上,可以被认为是程序语言基础的部分,实际的基础还有很多,并且巩固上述知识点,有最基础的算法帮忙练习(比如实现累计求和,相加等)这些需要自己去补齐(例如if函数等,这个很好理解)
这里往下,我们开始python库里数据分析包的实践(其实主要就是调用函数)
二、数据分析python库实践
1、常用的库
库可以看做是一堆函数的集合,就像是一本,import 库名 就像是命令计算机打开这本字典
常用的库主要是三个,算上数据科学的可以有十个
分别是:
Pandas、Numpy(数据清晰、分析、探索、数组处理);Scikit-learn、TensorFlow、Keras(机器学习库)、Gradio(机器学习部署);SciPy、Statsmodels(统计专用库);matplotlib、Seaborn(可视化)
一般来说,学Pandas、Numpy、Plotly足够了
2、Numpy库
Numpy突出一个数组处理能力,你就把数组看成一个excel表格,在一个个单元格内储存着数据
结合上面的基础教程,当一个数据进来的时候,你应该准备好一个个箱子把数据装进去,这些动作涉及的函数就包括
(1)数组创建
例如:
import numpy as npa = np.array([1,2,3,4])b = np.array([,'点赞','分享','求关注'])print(a)
数组之间可运算(参考线性代数的逻辑),数组可和数组进行加减乘除
选择数组间的数字,基本的索引和切片,转置(transpose),三角函数运算,皆可百度,你只要知道他如何使用,数学上对于数组的运算皆可实现
3、Pandas库
pandas库的优势在于:对齐各种不同类型的数据源、集成时间序列功能、灵活处理缺失数据、合并出现在其它数据库的关系型运算
说白了,比numpy更灵活,有时候只用pandas也可以满足需求
学习思路是:
(1)熟悉series、两个数据类型
(2)常用的索引方法和
(3)索引、选取、计算和过滤逻辑学习思路如numpy
(4)介绍一些汇总统计可以利用dataframe去做,例如corr方法,cov方法
(5)处理缺失数据,包括dropna\fillna\isnull\notnull等函数
上述的两种库不要死记硬背函数,最好是记住他能做什么,比如可以处理数组,运算数组,切割、索引数组,可以填补缺失值、可以排序。
两个库的主要函数基本体现在数据的预处理中,从这里开始要意识到,你越来越接近需要统计学的地方了,当数据预处理之后,才到怎么做分析的地步(后面讲)
3、matpoltlib
很明确的说,80%的需求,excel可以满足。用python不是不行,优势是自由度更高,图表更接近、科研的样式;劣势是啥呢,不符合大部分工作场景,比如你有一组数据,做了个图,ppt发给老板,老板不满意,总不能自己写代码吧。一般都是把数据考进ppt或者excel可以直接在里面操作,效率更高。
闲话少说,我们开始
(1)创建空图表
Figure和subplot可以创建一个图表对象
fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
从这里开始就可以发布绘图命令,也就是把数据填入横纵坐标
(2)绘制图像
form numpy. import randnplt.plot(randn(50).csmsum(),'k--')_= ax1.hist(randn(100),bins=20,color = 'k',alpha = 0.3)ax2.scatter(np.arange(30),np.arange(30)+3*randn(30))
你要知道图像的所有参数是可控的,包括颜色、标记、线型、坐标轴、间距、刻度、图例、注释,应有尽有。
所以为什么说他更适合科研,因为论文可能就只需要几张图;但是在工作中,可能一天就要好几张图来,你没时间写那么快。可视化的内容,了解即可。
(3)了解图的种类
线形图:
series(np.random.randn(10).cumsum(),index =np.arange(0,100,10))
柱状图:
data.polt(kind = ‘bar’,ax=axes[0],color=‘k’,alpha = 0.7)
直方图:hist(bins = 50)
饼图:plt.pie()
专题:数据聚合和分组运算
SQL里面有group by函数,python也可以做到,实际上,大部分基础的数据处理都属于分组运算,比如【每天】【所有城市】的订单,就是对日期和城市进行分组。不同的分组得到的结果就是指标在维度上的拆解。
事实上,python对数据的分组能力比sql要强大,只是在数据处理效率上弱一点,这就看你需要分组到什么地步,来决定你是不是需要把数据专门导出来用python处理
最基础的分组函数表示为:
假设数据组为两列指标data1&data2,维度为key1&ley2
group = df[‘data1’].groupby(dt[‘key’])
生成的group就是一个groupby对象,你可以理解为是一个准备好的分组器,然后需要配合各种聚合函数输出结果,
例如:
group.mean()
也可以连起来写
mean =df[‘data1’].groupby([df[‘key1’],df[‘key2’]]).mean()
一些常用的聚合函数如下:
专题:时间序列
时间序列在python可以概括为:时间函数处理+时间格式数据,充分描绘出时间序列的分布,加入各种运算,主要模块是:datetime、、calendar
比如当前的时间:now = datetime.now
datetime以毫秒形式储存时间,delta = datatime(2022,12,14) - datatime(2022,12,1)
时间函数也可以用字符串实现互相转化,
比如:value = '2022-12-24’
datetime.strptime(value,‘%Y-%m-%d’)
也可以用dateutil这个包中的parser.parse来解析日期,比如:
parse(‘2022-12-24’)
输出:datetime.datetime(2022,12,24,0,0)
datetime的格式定义
时间序列格式的变量,其实就是一列时间,加上各种各样的指标,比如1.1号,1;1.2号,记2
可以用如下方法定义:
dates =
[datetime(2022,12,1),datetime(2022,12,2),datetime(2022,12,3),datetime(2022,12,4),datetime(2022,12,5),datetime(2022,12,6),datetime(2022,12,7),datetime(2022,12,8)]
ts = Series(np…randn(6),index = dates)
就得到了两列时间序列的series变量
python可以做到:生成固定日期范围(pd.date_range),偏移固定日期量(nowday = datetime(2022,12,1)+3*day(),移动日期数据等,都属于数据预处理的操作。
以上,大部分能用python处理数据的工作基本已经分享完了,很多细节可以自己去敲代码和百度弥补,最后在实际的数据分析工作中,完成数据处理、展示的部分即可开展你的各种分析(比如通过不同的分组拆解指标,可视化找出下降的波动等)
读者福利:知道你对Python感兴趣,便准备了这套python学习资料
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!
👉Python学习路线汇总👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
👉Python必备开发工具👈
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉实战案例👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉100道Python练习题👈
检查学习结果。
👉面试刷题👈
做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。
别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。
我先来介绍一下这些东西怎么用,文末抱走。
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
(4)200多本电子书
这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。
基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。
(5)Python知识点汇总
知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。
(6)其他资料
还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。
这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!