data analysis
什么是数据分析
- 是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律
- 使得数据的价值最大化
- 分析用户的消费行为
- 制定促销活动的方案
- 制定促销时间和粒度
- 计算用户的活跃度
- 分析产品的回购力度
- 分析广告点击率
- 决定投放时间
- 制定广告定向人群方案
- 决定相关平台的投放
- ......
- 分析用户的消费行为
- 使得数据的价值最大化
- 数据分析是用适当的方法对收集来的大量数据进行分析,帮助人们做出判断,以便采取适当的行动
- 保险公司从大量赔付申请数据中判断哪些为骗保的可能
- 支付宝通过从大量的用户消费记录和行为自动调整花呗的额度
- 短视频平台通过用户的点击和观看行为数据针对性的给用户推送喜欢的视频
数据分析实现流程
- 提出问题
- 准备数据
- 分析数据
- 获得结论
- 成果可视化
开发环境介绍
- anaconda
- 官网:https://www.anaconda.com/
- 集成环境:集成好了数据分析和机器学习中所需要的全部环境
- 注意:
- 安装目录不可以有中文和特殊符号
- 注意:
- jupyter
- jupyter就是anaconda提供的一个基于浏览器的可视化开发工具
- jupyter的基本使用
- 启动:在终端中录入:jupyter notebook的指令,按下回车
- 新建:
- python3:anaconda中的一个源文件
- cell有两种模式:
- code:编写代码
- markdown:编写笔记
- 快捷键:
- 添加cell:a或者b
- 删除:x
- 修改cell的模式:
- m:修改成markdown模式
- y:修改成code模式
- 执行cell:
- shift+enter
- tab:自动补全
- 代开帮助文档:shift+tab
数据分析三剑客
- numpy
- pandas(重点)
- matplotlib
numpy
- NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。
numpy的创建
- 使用np.array()创建
- 使用plt创建
- 使用np的routines函数创建
使用numpy创建一位数组
>>> import numpy as np
>>> arr = np.array([1,2,3])
>>> arr
array([1, 2, 3])
使用numpy创建二维数组
>>> arr = np.array([[1,2,3],[4,5,6]])
>>> arr
array([[1, 2, 3],
[4, 5, 6]])
数组和列表的区别是什么?
>>> arr = np.array([1,1.27,'regina']) >>> arr array(['1', '1.27', 'regina'], dtype='<U32')
- 数组中存储的数据元素类型必须是统一类型
- 优先级:
- 字符串 > 浮点型 > 整数
-
将外部的一张图片读取加载到numpy数组中,然后尝试改变数组元素的数值查看对原始图片的影响
import matplotlib.pyplot as plt img_arr = plt.imread('/Users/ivanlee/Desktop/女明星/IMG_1473.JPG') plt.imshow(img_arr) #将numpy数组进行可视化展示
如果每一个像素块的值减100
运用函数创建数组
- zero()
- ones()
- linspace()
- arange()
- random系列
-
ones
np.ones(shape(3,4)) array([[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]])
-
Linspace(): 一维的等差数列的数组
>>> np.linspace(0,100,num=20) array([ 0. , 5.26315789, 10.52631579, 15.78947368, 21.05263158, 26.31578947, 31.57894737, 36.84210526, 42.10526316, 47.36842105, 52.63157895, 57.89473684, 63.15789474, 68.42105263, 73.68421053, 78.94736842, 84.21052632, 89.47368421, 94.73684211, 100. ])
-
arange():一维的等差数列
>>> np.arange(0,50,step=3) array([ 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48])
-
Random():返回由size决定的形状数组
>>> np.random.randint(0,100,size=(3,5)) array([[88, 56, 60, 56, 9], [ 9, 0, 32, 31, 32], [78, 10, 21, 78, 98]])
numpy的常用属性
- shape 形状
- ndim 维度
- size 总共个数
- dtype 元素类型
numpy的数据类型
- array(dtype=?):可以设定数据类型
- arr.dtype = '?':可以修改数据类型
名称 | 描述 |
---|---|
bool_ | 布尔型数据类型(True 或者 False) |
int_ | 默认的整数类型(类似于 C 语言中的 long,int32 或 int64) |
intc | 与 C 的 int 类型一样,一般是 int32 或 int 64 |
intp | 用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64) |
int8 | 字节(-128 to 127) |
int16 | 整数(-32768 to 32767) |
int32 | 整数(-2147483648 to 2147483647) |
int64 | 整数(-9223372036854775808 to 9223372036854775807) |
uint8 | 无符号整数(0 to 255) |
uint16 | 无符号整数(0 to 65535) |
uint32 | 无符号整数(0 to 4294967295) |
uint64 | 无符号整数(0 to 18446744073709551615) |
float_ | float64 类型的简写 |
float16 | 半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位 |
float32 | 单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位 |
float64 | 双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位 |
complex_ | complex128 类型的简写,即 128 位复数 |
complex64 | 复数,表示双 32 位浮点数(实数部分和虚数部分) |
complex128 | 复数,表示双 64 位浮点数(实数部分和虚数部分) |
numpy 的数值类型实际上是 dtype 对象的实例,并对应唯一的字符,包括 np.bool_,np.int32,np.float32,等等。