Python数据分析学习总结Python数据分析学习总结
概述
数据分析的含义与⽬标
⽅法:统计分析⽅法
⽬标:提取有⽤信息
⼿段:研究、概括、总结
Python与数据分析
Python特点:简洁、开发效率⾼、运算速度慢、胶⽔特性(集成C语⾔)
Python数据分析:numpy、scipy、matplotlib、pandas、scikit-learn、keras…
Python数据分析⼤家族
numpy:数据结构基础
scipy:强⼤的科学计算⽅法(矩阵分析、信号分析、数理分析…)
matplotlib:丰富的可视化套件
pandas:基础数据分析套件
scikit-learn:强⼤的数据分析建模库
keras:⼈⼯神经⽹络
Python数据分析环境搭建
平台:Windows、Linux
科学计算⼯具:Anaconda
Python数据分析基础
numpy
开源、数据计算扩展;ndarray、多维操作、线性代数
numpy使⽤程序:
import numpy as np
def main():
lst=[[1,3,5],[2,4,6]]
print(type(lst))
np_lst=np.array(lst)
print(type(np_lst))
np_lst=np.array(lst, dtype=np.float)
print(np_lst.shape)
print(np_lst.ndim)
print(np_lst.dtype)
print(np_lst.itemsize)
print(np_lst.size)
if __name__=="__main__":
<class 'numpy.ndarray'>
(2, 3)
2
float64
8
6
numpy常⽤数组
s([2,4]))
s([3,5]))
print(np.random.rand(2,4))
print(np.random.rand())
print("RandInt:")
print(np.random.randint(1,10,3))
print("Randn:")  # 标准正态分布
print(np.random.randn(2,4))
print("Choice")
print(np.random.choice([10,20,30]))
print("Distribute:")  # Beta分布
print(np.random.beta(1,10,100))
执⾏结果:
[[ 0.  0.  0.  0.]
[ 0.  0.  0.  0.]]
[[ 1.  1.  1.  1.  1.]
[ 1.  1.  1.  1.  1.]
[ 1.  1.  1.  1.  1.]]
[[ 0.80307088  0.25491367  0.54381007  0.10159737]
[ 0.71565024  0.62473538  0.66892166  0.41078071]]
0.16467244260637237
RandInt:
[5 3 2]
Randn:
[[-0.51707383 -1.46091351 -0.78197086  0.44640286]
[-0.0998081  0.40701679  0.07750661  0.66041753]]
Choice
10
Distribute:
[ 0.03897375  0.09804991  0.1617222  ...,  0.12878516  0.11699157  0.05681225]
numpy常⽤操作
print("Arange:")
print(np.arange(1,11))
print("Exp:")
p(lst))
print("Exp2:")
p2(lst))
print("Sqrt:")
print(np.sqrt(lst))
print("Sin:")
print(np.sin(lst))
print("Log:")
print(np.log(lst))
执⾏结果:
Arange:
[ 1  2  3  4  5  6  7  8  9 10]
Exp:
[[  2.71828183  20.08553692  148.4131591 ]
[  7.3890561    54.59815003  403.42879349]]
Sqrt:
[[ 1.          1.73205081  2.23606798]
[ 1.41421356  2.          2.44948974]]
Sin:
[[ 0.84147098  0.14112001 -0.95892427]
[ 0.90929743 -0.7568025  -0.2794155 ]]
Log:
[[ 0.          1.09861229  1.60943791]
[ 0.69314718  1.38629436  1.79175947]]
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,11]]]) print(lst.sum(axis=2))
print(lst.sum(axis=1))
print(lst.sum(axis=0))
print("Max:")
print(lst.max(axis=1))
print("Min:")
print(lst.min(axis=0))
执⾏结果:
[[10 22]
[34 46]
[62 68]]
[[ 5  7  9 11]
[17 19 21 23]
[32 34 36 28]]
[[22 25 28 31]
[32 35 38 31]]
Max:
[[ 4  5  6  7]
[10 11 12 13]
[18 19 20 17]]
Min:
[[1 2 3 4]
[4 5 6 7]]
lst1=np.array([10,20,30,40])
lst2=np.array([4,3,2,1])
print("Add:")
print(lst1+lst2)
print("Sub:")
print(lst1-lst2)
print("Mul:")
print(lst1*lst2)
print("Div:")
print(lst1/lst2)
print("Square:")
print(lst1**2)
print("Dot:")
print(np.shape([2,2]),shape([2,2])))
print("Concatenate:")
atenate((lst1,lst2),axis=0))
print("vstack:")
print(np.vstack((lst1,lst2)))
print("hstack:")
print(np.hstack((lst1,lst2)))
print("Split:")
print(np.split(lst1,2))
print(np.split(lst1,4))
print("Copy:")
py(lst1))
执⾏结果:
Add:
Sub:
[ 6 17 28 39]
Mul:
[40 60 60 40]
Div:
[  2.5          6.66666667  15.          40.        ]
Square:
[ 100  400  900 1600]
Dot:
[[ 80  50]
[200 130]]
Concatenate:
[10 20 30 40  4  3  2  1]
vstack:
[[10 20 30 40]
linspace numpy[ 4  3  2  1]]
hstack:
[10 20 30 40  4  3  2  1]
Split:
[array([10, 20]), array([30, 40])]
[array([10]), array([20]), array([30]), array([40])]
Copy:
[10 20 30 40]
线程⽅程组
import numpy as np
from numpy.linalg import *
def main():
(3))
lst=np.array([[1,2],[3,4]])
print("Inv:")
print(inv(lst))
print("T:")
anspose())
print("Det:")
print(det(lst))
print("Eig:")
print(eig(lst))
if __name__=="__main__":
main()
执⾏结果:
[[ 1.  0.  0.]
[ 0.  1.  0.]
[ 0.  0.  1.]]
Inv:
[[-2.  1. ]
[ 1.5 -0.5]]
T:
[[1 3]
[2 4]]
Det:
-2.0
Eig:
(array([-0.37228132,  5.37228132]), array([[-0.82456484, -0.41597356],      [ 0.56576746, -0.90937671]]))
numpy其他⽅⾯应⽤
import numpy as np
def main():
print("FFT:")
print(np.fft.fft(np.array([1,1,1,1,1,1,1,1])))
print("Coef:")
ef([1,0,1],[0,2,1]))
print("Poly:")
print(np.poly1d([2,1,3]))
if __name__=="__main__":
main()
执⾏结果:
FFT:
[ 8.+0.j  0.+0.j  0.+0.j  0.+0.j  0.+0.j  0.+0.j  0.+0.j  0.+0.j]
Coef:
[[ 1.        -0.8660254]
[-0.8660254  1.      ]]
Poly:
2
2 x + 1 x + 3
matplotlib
概述
matplotlib是关键的绘图库。
实现
import numpy as np
import matplotlib.pyplot as plt
def main():
#line
x=np.linspace(-np.pi,np.pi,256,endpoint=True)
c,s(x),np.sin(x)
plt.figure(1)
plt.plot(x,c,color="blue",linewidth=1.0,line,label="COS",alpha=0.5)    plt.plot(x,s,"r*",label="SIN")
plt.title("COS & SIN")
a()
ax.spines["right"].set_color("none")
ax.spines["top"].set_color("none")
ax.spines["left"].set_position(("data",0))
ax.spines["bottom"].set_position(("data",0))
ax.xaxis.set_ticks_position("bottom")
ax.yaxis.set_ticks_position("left")
plt.show()
#scatter
fig=plt.figure()
ax=fig.add_subplot(3,3,1)
n=128
X=al(0,1,n)
Y=al(0,1,n)
T=np.arctan2(Y,X)
#plt.axes([0.025,0.025,0.95,0.95])
#plt.scatter(X,Y,s=75,c=T,alpha=0.5)
ax.scatter(X,Y,s=75,c=T,alpha=0.5)
plt.xlim(-1.5,1.5),icks([])
plt.ylim(-1.5,1.5),icks([])

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。