python数据统计和可视化

6.1聚类分析

scipy的cluster模块中的vq

安装scipy: pip install scipy

根据学生成绩对几名学生进行聚类分类,使用k-means算法,scipy自带的

import numpy as np
from scipy.cluster.vq import vq,kmeans,whiten
list1=[88.0,74.0,96.0,85.0]
list2=[92.0,99.0,95.0,94.0]
list3=[91.0,87.0,99.0,95.0]
list4=[78.0,99.0,97.0,95.0]
list5=[88.0,78.0,98.0,84.0]
list6-[100.0,95.0,100.0,92.0]
data=np.array([list1,list2,list3,list4,list5,list6])
whiten=whiten(data)#whiten函数:算出数据的标准差
centroids,_=kmeans(whiten,2)#使用kmeans函数,返回聚类中心数组
result,_=vq(whiten,centroids)#vq:矢量量化函数
print(result)

output:
[1 0 0 1 1 0]

使用sklearn的KMeans

安装sklearn:

先安装matplotlib:pip install matplotlib

 安装sklearn:pip install -U scikit-learn

>>> from sklearn.cluster import KMeans
>>> import numpy as np
>>> list1=[88.0,74.0,96.0,85.0]
>>> list2=[92.0,99.0,95.0,94.0]
>>> list3=[91.0,87.0,99.0,95.0]
>>> list4=[78.0,99.0,97.0,81.0]
>>> list5=[88.0,78.0,98.0,84.0]
>>> list6=[100.0,95.0,100.0,92.0]
>>> X=np.array([list1,list2,list3,list4,list5,list6])
>>> kmeans=KMeans(n_clusters=2).fit(X)#fit方法,对确定了类别之后的数据集进行聚类
>>> pred=kmeans.predict(X)#predict方法,根据聚类的结果确定所属的类别
>>> print(pred)

output:
[0 1 1 1 0 1]

6.2Matplotlib绘图基础

主要是二维绘图

绘图API-pyplot模块

继承库--pylab模块(包含Numpy和pyplot中的常用函数)

import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.linspace(0,1)
y=np.sin(4*np.pi*x)*np.exp(-5*x)
plt.plot(x,y)#绘制曲线图
show()#一定要写这句
plt.plot(x,y,'o')#绘制散点图
show()
plt.bar(x,y)#绘制柱状图
show()

6.3Matplotlib图像属性控制

import matplotlib.pyplot as plt
help(plt.plot)

x=closeMeansKO.index
y=closeMeansKO.values
plt.title('Stock Statistics of Coca-Cola')#给横纵坐标加上标签,给图加上标题
plt.xlabel('Month')
plt.ylabel('Average Close Price')
plt.plot(x,y)

#使用pylab
import pylab as pl
pl.figure(figsize=(8,6),dpi=100)
t=np.arange(0.,4,0.1)
pl.plot*(t,t,color='red',linestyle='-',linewidth=3,label='Line1')
pl.legend(loc='upper left')#把图例放在坐上方

#多子图
plt.subplot(211)#第一个参数和第二个参数表示了行和列数,第三个参数表示了是第几个子图,两行一列中第#一个子图
plt.subplot(212)

#子图axes

6.4pandas作图

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
 
x = np.linspace(0, 1)
y = np.sin(4 * np.pi * x) * np.exp(-5 * x)
t = pd.DataFrame(y, index = x)#直接使用DataFrame函数作图
t.plot()

箱型图

6.5数据存取

#csv格式数据存取
import pandas as pd
quotes=retrieve_quotes_historical('AXP')
df=pf.DataFrame(quotes)
df.to_csv('stockAXP.csv')

将表格放入DataFrame对象中

import numpy as np
import pandas as pd
lists=[['The rolling stones','Satisfaction'],['Beatles','Let It Be'],
       ["Gun N'Rose","Don't Cry"],['Metallica','Nothing Else Matters']]
df=pd.DataFrame(lists,columns=['Singer','Song'])
df.to_csv('Songs.csv')

#读数据
result=pd.read_csv('Songs.csv')
print(result['Song'])#打印出其中的一列

读/写excel文件

#写成.xlsx文件
quotes=retrieve_quotes_historical('AXP')
df=pd.DataFrame(quotes)
df.to_excel('stockAXP.xlsx',sheet_name='AXP')

#读取.xlsx文件
df=pd.read_excel('stockAXP.xlsx')
print(df['close'][:3])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值