数据分析 1
定义:
数据分析是基于商业目的,有目的的进行行收集、整理理、加工和分析数据,提炼有价信息的一个
过程。
过程:
明确分析目的与框架、数据收集、数据处理理(数据清洗、数据转换)、数据分析、数据展现和
撰写报告等6个阶段。
数据类型:
表格型数据,其中各列列可能是不不同的类型(字符串串、数值、日期等)。比如保存在关系型数据
库中或以制表符/逗号为分隔符的文本文件中的那些数据。
多维数组(矩阵)。
通过关键列列(对于SQL用户而言,就是主键和外键)相互联系的多个表。
间隔平均或不不平均的时间序列列。
Excel是最广泛的数据分析工具
为什什么用Python进行行数据分析
拥有巨大活跃的科学计算社区
数据科学、机器器学习、学界和工业界开发重要语⾔言
胶水语言,轻松集成旧有算法和系统
不不仅适用于研究和原型构建,同时也适⽤用于构建⽣生产系统
重要的Python库
1、NumPy (Numerical Python)
Python科学计算的基础包
快速,高效的多维数组对象ndarray。
用于对数组执行元素级计算以及直接对数组执行数学运算的函数。
用于读写硬盘上基于数组的数据集的工具。
线性代数运算、傅里里叶变换,以及随机数生成。
成熟的C API, 用于Python插件和原生C、C++、Fortran代码访问NumPy的数据结构和计
算工具。
对于数值型数据,NumPy数组在存储和处理理数据时要⽐比内置的Python数据结构高效得
多。
2、pandas
pandas提供了了快速便便捷处理理结构化数据的大量量数据结构和函数。
pandas兼具NumPy高性能的数组计算功能以及电子表格和关系型数据库(如SQL)灵活
的数据处理理功能。它提供了了复杂精细的索引功能,能更更加便便捷地完成重塑、切片和切块、
聚合以及选取数据子集等操作
数据操作、准备、清洗是数据分析最重要的技能(耗时最长)
3、matplotlib
最流⾏行行的⽤用于绘制图表和其它⼆二维数据可视化的Python库
适合创建出版物上⽤用的图表
4、IPython 和 Jupyter
执⾏行行 探索 ⼯工作流 (探索、试错、重复)
IPython web notebook Jupyter notebook (⽀支持40多种编程语⾔言)
Jupyter notebook⽀支持markdown和html
5、Scipy
⼀一组专⻔门解决科学计算中各种标准问题域的包的集合。
6、scikit-learn
scikit-learn成为了了Python的通⽤用机器器学习⼯工具包
7、statsmodels
statsmodels包含经典统计学和经济计量量学的算法
常⽤用模块引⽤用惯例例
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import statsmodels as sm
安装Anaconda
Downloads - Anaconda
Python 1991年年出现,Python 2.x在2020年年就会到期(包括重要的安全补丁),新项⽬目请使⽤用
Python 3
IPython基础
jupyter notebook
Jupyter Notebook
要新建⼀一个notebook,点击按钮New,选择“Python3”或“conda[默认项]”。如果是第⼀一次,
点击空格,输⼊入⼀一⾏行行Python代码。然后按Shift-Enter执⾏行行。
当保存notebook时(File⽬目录下的Save and Checkpoint),会创建⼀一个后缀名为.ipynb的⽂文
件。
要加载存在的notebook,把它放到启动notebook进程的相同⽬目录内。
%pwd
%ls
Tab补全
In [3]: b = [1, 2, 3]
In [4]: b.<Tab>
b.append b.count b.insert b.reverse
b.clear b.extend b.pop b.sort
b.copy b.index b.remove
In [1]: import datetime
In [2]: datetime.<Tab>
datetime.date datetime.MAXYEAR datetime.timedelta
datetime.datetime datetime.MINYEAR datetime.timezone
datetime.datetime_CAPI datetime.time datetime.tzinfo
在变量量前后使⽤用问号?,可以显示对象的信息
In [8]: b = [1, 2, 3]
In [9]: b?
Type: list
String Form:[1, 2, 3]
Length: 3
Docstring:
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
In [10]: print?
Docstring:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
Type: builtin_function_or_method
def add_numbers(a, b):
"""
Add two numbers together
Returns
the_sum : type of arguments
"""
return a + b
然后使⽤用?符号,就可以显示如下的⽂文档字符串串:
In [11]: add_numbers?
Signature: add_numbers(a, b)
Docstring:
Add two numbers together
Returns
the_sum : type of arguments
File: <ipython-input-9-6a548a216e27>
Type: function
使⽤用??会显示函数的源码:
In [12]: add_numbers??
Signature: add_numbers(a, b)
Source:
def add_numbers(a, b):
"""
Add two numbers together
Returns
the_sum : type of arguments
"""
return a + b
File: <ipython-input-9-6a548a216e27>
Type: function
搜索IPython的命名空间
In [13]: np.load?
np.loader
np.load
np.loads
np.loadtxt
np.pkgload
%run, %load, %paste, %cpaste 命令
%run命令运⾏行行所有的Python程序
In [14]: %run test3.py
文件中所有定义的变量量(import、函数和全局变量量,除⾮非抛出异常),都可以在IPython shell
中随后访问
在Jupyter notebook中,你也可以使⽤用%load,它将脚本导⼊入到⼀一个代码格中
%load test3.py
%paste和%cpaste 函数。%paste 可以直接运⾏行行剪贴板中的代码
键盘快捷键
魔术命令
%timeit 测量量任何Python语句句,例例如矩阵乘法,的执⾏行行时间
In [23]: foo = %pwd
In [24]: foo
集成Matplotlib
IPython在分析计算领域能够流⾏行行的原因之⼀一是它⾮非常好的集成了了数据可视化和其它⽤用户界⾯面
库,⽐比如matplotlib
%matplotlib
import matplotlib.pyplot as plt
plt.plot(np.random.randn(50).cumsum())
网友评论