Python-Data-Analysis

网友投稿 460 2022-05-29

1. 数据分析概述

定义: 数据分析是用适当的方法对收集来的大量数据进行分析,帮助人们作出判断,以便采取适当行动。

为什么要学习数据分析?

有岗位需求

是python数据科学的基础

是机器学习课程的基础

2. 数据分析的工作流:

3. 数据分析案例

3.1.1. NBA 金州勇士队

3.1.2. 数据分析高手塔吉特

小故事:2012年,美国一名男子闯入他家附近的一家零售连锁超市塔吉特内抗议:你们竟然给我17岁的女儿发婴儿尿片和童车优惠券。店铺经理立刻向来者承认错误,但是该经理并不知道这一行为是总公司运行数据挖掘和个性化推荐的结果。一个月后,这位父亲前来道歉,因为这时他知道自己的女儿的确怀孕了。塔吉特比这位父亲知道自己女儿怀孕足足早了一个月。

美国第二大超市塔吉特百货(Target)是最早玩大数据的零售商,他们拥有专业顾客数据分析模型,可对购买行为精确分析出早期怀孕的人群,然后先于同行精准营销商品。曾经一次精准营销让一个蒙在鼓里的父亲意外发现高中生女儿怀孕了,此事被纽约时报报道,轰动了全美。

4. 环境安装

简介 Anaconda(官方网)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。

Anaconda具有如下特点:

开源

安装过程简单

高性能使用Python和R语言

免费的社区支持

Anaconda、conda、pip、virtualenv的区别

Anaconda Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。

conda conda是包及其依赖项和环境的管理工具。 适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。 适用平台:Windows, macOS, Linux 用途: ① 快速安装、运行和升级包及其依赖项。 ② 在计算机中便捷地创建、保存、加载和切换环境。 conda为Python项目而创造,但可适用于上述的多种语言。 conda包和环境管理器包含于Anaconda的所有版本当中。

pip pip是用于安装和管理软件包的包管理器。 pip编写语言:Python。 Python中默认安装的版本: ① Python 2.7.9及后续版本:默认安装,命令为 pip ② Python 3.4及后续版本:默认安装,命令为 pip3 pip名称的由来:pip采用的是递归缩写进行命名的。其名字被普遍认为来源于2处: ① “Pip installs Packages”(“pip安装包”) ② “Pip installs Python”(“pip安装Python”)

virtualenv virtualenv是用于创建一个独立的Python环境的工具。 解决问题:

当一个程序需要使用Python 2.7版本,而另一个程序需要使用Python 3.6版本,如何同时使用这两个程序?如果将所有程序都安装在系统下的默认路径,如:/usr/lib/python2.7/site-packages,当不小心升级了本不该升级的程序时,将会对其他的程序造成影响。

如果想要安装程序并在程序运行时对其库或库的版本进行修改,都会导致程序的中断。

在共享主机时,无法在全局 site-packages 目录中安装包。

virtualenv将会为它自己的安装目录创建一个环境,这并不与其他virtualenv环境共享库;同时也可以选择性地不连接已安装的全局库

Anaconda的适用平台及安装条件 Anaconda可以在以下系统平台中安装和使用:Windows、macOS、Linux(x86 / Power8) Windows系统安装Anaconda ① 前往官方下载页面下载。有两个版本可供选择:Python 3.6 和 Python 2.7,选择版之后根据自己操作系统的情况点击“64-Bit Graphical Installer”或“32-Bit Graphical Installer”进行下载。 ② 完成下载之后,双击下载文件,启动安装程序。 注意:如果在安装过程中遇到任何问题,那么暂时地关闭杀毒软件,并在安装程序完成之后再打开。如果在安装时选择了“为所有用户安装”,则卸载Anaconda然后重新安装,只为“我这个用户”安装。 ③ 选择“Next”。 ④ 阅读许可证协议条款,然后勾选“I Agree”并进行下一步。 ⑤ 除非是以管理员身份为所有用户安装,否则仅勾选“Just Me”并点击“Next”。 ⑥ 在“Choose Install Location”界面中选择安装Anaconda的目标路径,然后点击“Next”。 注意: 目标路径中不能含有空格,同时不能是“unicode”编码。除非被要求以管理员权限安装,否则不要以管理员身份安装。 ⑦ 在“Advanced Installation Options”中不要勾选“Add Anaconda to my PATH environment variable.”(“添加Anaconda至我的环境变量。”)。因为如果勾选,则将会影响其他程序的使用。如果使用Anaconda,则通过打开Anaconda Navigator或者在开始菜单中的“Anaconda Prompt”(类似macOS中的“终端”)中进行使用。 除非你打算使用多个版本的Anaconda或者多个版本的Python,否则便勾选“Register Anaconda as my default Python 3.6”。 然后点击“Install”开始安装。如果想要查看安装细节,则可以点击“Show Details”。 ⑧点击“Next”。 ⑨ 进入“Thanks for installing Anaconda!”界面则意味着安装成功,点击“Finish”完成安装。 注意:如果你不想了解“Anaconda云”和“Anaconda支持”,则可以不勾选“Learn more about Anaconda Cloud”和“Learn more about Anaconda Support”。 ⑩验证安装结果。可选以下任意方法: 第一种; “开始 → Anaconda3(64-bit)→ Anaconda Navigator”,若可以成功启动Anaconda Navigator则说明安装成功。 第二种;“开始 → Anaconda3(64-bit)→ 右键点击Anaconda Prompt → 以管理员身份运行”,在Anaconda Prompt中输入 conda list ,可以查看已经安装的包名和版本号。若结果可以正常显示,则说明安装成功。 其他操作系统请见 macos官方教程,Linux官方教程

5. Jupyter Notebook的使用

Jupyter Notebook 是一款 Web 应用,它能让用户将上面说的各种窗口里的东西,全部组合到一个可读性好,易于共享,且对新手友好的文档中。这个文档里可以包括:

live code (e.g. Python code) 可执行的代码,比如我们需要的 Python 代码

visualizations 可视化的数据库图表,或者代码执行之后生成的可视化效果,比如 matplotlib 输出的图像等

explanatory text (written in markdown syntax) 各种解释性文字,例如用 markdown 语法写的格式化说明文本,Latex写的数学方程等

因此,你可以方便地一边写代码,一边写许多带格式的注释文本,还能让运行结果实时在页面内显示出来。所以,Jupyter Notebook 很适合以下一些用途使用:

学习并尝试运行 Python 代码,观察其效果

数据处理和转换

数值模拟分析

统计建模

机器学习

快捷键--->help--->Keyboard Shortcuts

1+1

2

下面这个例子range里数字改一下运行

for _ in range(4): print('Hello ! 让我一起来数据分析吧')

Hello ! 让我一起来数据分析吧 Hello ! 让我一起来数据分析吧 Hello ! 让我一起来数据分析吧 Hello ! 让我一起来数据分析吧

5+2

7

help 下的keyboard shortcut

run cell, select below // shift + enter

5 + 5*2

15

run selected cells // control + enter

9 + 9

18

run cell and insert below // option +enter

VIEW ---> toggle TOOLBAR 和 toggle header 隐藏 toggle line_number 显示行数

in 和 out 代表运行的顺序

下面插入是 B 上面是A 单元格绿色是 输入 蓝色是非编辑

markdown 的快捷键是 M

Y是变成代码状态

data = [i*2 for i in range(100)]

len(data)

100

data[:10]

[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

data 一直在内存中 我们要加载一个很大的数据,只需要一个加载一次就可以

在前面可以使用未声明的变量 (特点) data[-1] 插入到上面的某一行演示

6. Jupyter NOTEBOOK高级 :魔法命令

调用自己写的代码 比如用pycharm 写的

def hello(name): print('Hello', name, '!') hello("neuedu")

hello.py存在myscript/文件夹中,我们使用 %run来运行 %run myscript/hello.py

Hello neuedu !

这是hello()函数也加载到内存中 hello('刘强东')

Hello 刘强东 !

加载模块 在工程中新建mymodule包然后在包中新建FirstDemo.py文件

def predict(x): print('听说班长今晚请吃饭')

import mymodule.FirstDemo

mymodule.FirstDemo.predict('x')

听说班长今晚请吃饭

from mymodule import FirstDemo as fd

fd.predict(1)

听说班长今晚请吃饭

函数的注释

print? # 会显示print函数的信息

print??# 会显示print函数的详细信息

执行了1000次 由jupterNotebook 决定次数

%timeit L = [i**2 for i in range(1000)]

307 µs ± 15 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

时间复杂度 O(n) 级别 线性的

%timeit L = [i**2 for i in range(1000000)]

362 ms ± 19.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

%timeit L = [i**2 for i in range(10)]

3.34 µs ± 264 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

接多行的写法

%%timeit L = [] for n in range(1000): L.append(n ** 2)

352 µs ± 5.21 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

列表生成式要比 for循环快

%time L = [i**2 for i in range(1000)]

CPU times: user 329 µs, sys: 0 ns, total: 329 µs Wall time: 333 µs

cpu时间 usertime systime totaltime walltime是人类真正感知到的时间 多线程 cpu < wall

比上面的时间长是因为之前的是去7次最快的 跟当前操作系统的调度任务有关系

%%time L = [] for n in range(1000): L.append(n ** 2)

CPU times: user 835 µs, sys: 1 µs, total: 836 µs Wall time: 844 µs

import random L = [random.random() for i in range(100000)] %timeit L.sort()

2.09 ms ± 150 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

L = [random.random() for i in range(100000)] %time L.sort()

CPU times: user 33.1 ms, sys: 678 µs, total: 33.8 ms Wall time: 33.7 ms

%time L.sort()

Python-Data-Analysis

CPU times: user 2.58 ms, sys: 19 µs, total: 2.6 ms Wall time: 2.62 ms

为什么会产生这么大时间的差距呢 python对已经排好序的有优化 乱序的数组有相应复杂的操作 三路快排算法 归并排序算法 加入优化算法以后 对于已经有序的数组的是 O(n) 对于乱序是On (log n)

%lsmagic

Available line magics: %alias %alias_magic %autocall %automagic %autosave %bookmark %cat %cd %clear %colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %profile %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode Available cell magics: %%! %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile Automagic is ON, % prefix IS NOT needed for line magics.

魔法命令的详细描述

%run?

%pwd

'/Users/ericli/Desktop/JupyterBase'

%matplotlib

Using matplotlib backend: MacOSX

很重要 有可能图不会出现或者无法控制绘画

Unix shell命令

#### !ls

Anaconda Python 应用与数据集成平台 ROMA Connect 机器学习

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:YANG模型简介(二)
下一篇:首汽共享汽车签约众签,GoFun出行“够范儿”
相关文章