python数据分析基础技术篇
python数据分析的概论
1、数据分析的含义与目标
统计分析的方法
提取有用的信息
研究、概括、总结
2、Python与数据分析
特点:简洁、开发效率、运算速度慢、胶水特性(解决运算速度的问题,可以把c语言引入进来)
3、python数据分析的大家族
numpy : 数据结构的基础
关键词:开源、数据计算扩展
功能:ndarray、多维操作、线性代数
官网:numpy官网
scipy:强大的科学计算方法(矩阵分析、信号分析、数理分析…)
matplotlib:丰富的可视化套件
pandas:基础数据分析的套件
scikit-learn:强大的数据分析建模库
keras:人工神经网络
科学计算工具:Anaconda
1、numpy
1、判断数据结构的类型
#encode utf-8
import numpy as np
#如果运行的是主函数的话,执行下一句main()
#如果作为模块被其他文件导入使用的话,我们就不执行后面的main()什么的。
def main():
lst=[[1,2,9],[2,6,2]]
print(type(lst))
nplst=np.array(lst) #nparray只能有一种数据类型
print(type(nplst))
nplst=np.array(lst,dtype=np.float64)
print(nplst.shape) #形状
print(nplst.ndim) #二维
print(nplst.dtype) #数据类型
print(nplst.itemsize)#每个元素所占字节,64位占8个字节
print(nplst.size) #共多少个元素
if __name__=='__main__':
main()
2、常用数组,生成数据(满足某一分布)
import matplotlib
import numpy as np
#some Arrays
print(np.zeros([2,4])) #1、输出零矩阵
print(np.zeros([3,5]))
print("Rand:")
print(np.random.rand(2,4))#2、输出随机矩阵,其中各元素在0-1之间
print(np.random.rand())#输出0-1之间的数
print("RandInt:")
print(np.random.randint(3,8,9))#3、输出3-8之间的9个整数
print("Randn:")
print(np.random.randn(2,4))#4、标准正态的随机数
print("choice:")
print(np.random.choice([1,6,33,8,9]))#5、生成1,6,33,8,9中的随机数
print("Distribute:")
print(np.random.beta(1,10,100))#6、生成贝塔分布、当然像均匀分布、二项分布这样子的分布也可以用随机函数表示出来
3、对数组进行操作
1、对 axis的解释
原数组
(1)axis=0
(2)axis=1
(3)axis=2
#对原生list进行操作
lst=np.array([[[1,2,3,4],[4,5,6,7]],[[7,8,9,10],[10,11,12,13]],[[14,15,16,17],[18,19,20,21]]])#将该级别括号的元素相加
#print(lst.shape)
print(lst)
#print(lst.sum())
#print(lst.sum(axis=2,keepdims=True))
print(lst.sum(axis=2,keepdims=True))
总结:
(1)保持括号不变,将元素相加
(2)找到进入的括号
(3)将括号内元素相加
2、对数组操作的代码
(1)对一维列表操作
(2)对二维列表进行操作
(3)对两个列表的操作
import matplotlib
import numpy as np
# # 对列表本身操作
# print(np.arange(1,11))#输出1到10的数组
# print(np.arange(1,11).reshape([2,5]))#将数组变成2×5维
# print(np.arange(1,11).reshape([2,-1]))#将数组变成2×5维,5可以缺省成为-1
# #原生list是不可以直接加操作的
# lst=np.arange(1,11).reshape([2,-1])
# print("Exp")
# print(np.exp(lst))#指数形式
# print("Exp2")
# print(np.exp2(lst))
# print("sqrt")
# print(np.sqrt(lst))
# print("sin")
# print(np.sin(lst))
# print("log")
# print(np.log(lst))
lst=np.array([[[1,2,3,4],[1,2,3,5]],[[7,8,9,10],[10,11,12,13]],[[14,15,16,17],[18,19,20,21]]])#将该级别括号的元素相加
#print(lst.shape)
#print(lst)
#print(lst.sum())
#print(lst.sum(axis=2,keepdims=True))
print(lst.sum(axis=2,ke