Python 为数据分析和机器学习提供诸多工具, anaconda 是其中一个著名的科学计算发行版, 包括近200多个工具包, 常见的有 numpy, scipy, pandas, ipython, matplotlib, sklearn 等等
conda 是它的一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版
- 下载安装 anacoda
到清华的镜像站点下载 Anaconda3-5.2.0-Linux-x86.sh
运行 Anaconda3-5.2.0-Linux-x86.sh
安装到 ~/anaconda3
- 配置环境
2.1 配置你的 python 环境
假设我们需要安装Python 3.4,此时,我们需要做的操作如下:
# 创建一个名为python34的环境,指定Python版本是3.4(不用管是3.4.x,conda会为我们自动寻找3.4.x中的最新版本)
conda create --name python34 python=3.4
# 安装好后,使用activate激活某个环境
activate python34 # for Windows
source activate python34 # for Linux & Mac
# 激活后,会发现terminal输入的地方多了python34的字样,实际上,此时系统做的事情就是把默认2.7环境从PATH中去除,再把3.4对应的命令加入PATH
# 此时,再次输入
python --version
# 可以得到`Python 3.4.5 :: Anaconda 4.1.1 (64-bit)`,即系统已经切换到了3.4的环境
# 如果想返回默认的python 2.7环境,运行
deactivate python34 # for Windows
source deactivate python34 # for Linux & Mac
# 删除一个已有的环境
conda remove --name python34 --all
# 创建一个名为python34的环境,指定Python版本是3.4(不用管是3.4.x,conda会为我们自动寻找3.4.x中的最新版本)
conda create --name python34 python=3.4
# 安装好后,使用activate激活某个环境
activate python34 # for Windows
source activate python34 # for Linux & Mac
# 激活后,会发现terminal输入的地方多了python34的字样,实际上,此时系统做的事情就是把默认2.7环境从PATH中去除,再把3.4对应的命令加入PATH
# 此时,再次输入
python --version
# 可以得到`Python 3.4.5 :: Anaconda 4.1.1 (64-bit)`,即系统已经切换到了3.4的环境
# 如果想返回默认的python 2.7环境,运行
deactivate python34 # for Windows
source deactivate python34 # for Linux & Mac
# 删除一个已有的环境
conda remove --name python34 --all
2.2 配置 anaconda
#add it to ~/.bashrc
export PATH=/opt/anaconda3/bin:${PATH}
source ~/.bashrc
sudo ln -sf /opt/anaconda3/bin/ipython /usr/bin/ipy
sudo ln -sf /opt/anaconda3/bin/pip /usr/bin/ipi
sudo chown -R walter:walter /opt/anaconda3
conda --version
conda 4.5.4
好了, 搞定环境之后, 运行 $ ./anaconda-navigator
打开我最喜爱的 jupyter notebook 开始编程吧
数据如下, 我们在四个数据中心发现如下的请求, 分为三类 fast (快的响应), slow (慢的响应), fail (失败的响应)
,time,fast,slow,fail,data_center
0,2019-02-17,592,25,11,BeiJing
1,2019-02-18,637,628,31,ShangHai
2,2019-02-19,577,908,19,HangZhou
3,2019-02-20,654,984,22,HeFei
代码如下, 绘制一张饼图和对应的图表
from pandas.plotting import table
import pandas as pd
from tabulate import tabulate
import matplotlib.pyplot as plt
def apdex(df):
df['total_requests'] = df['fast'] + df['slow'] + df['fail']
print(tabulate(df, headers='keys', tablefmt="grid"))
fig, ax = plt.subplots(figsize=(16, 8))
#plt.figure(figsize=(16,8))
# plot chart
ax1 = plt.subplot(121, aspect='equal')
df.plot(kind='pie', y = 'total_requests', ax=ax1, autopct='%1.1f%%',
startangle=90, shadow=False, labels=df['data_center'], legend = False, fontsize=14)
# plot table
ax2 = plt.subplot(122)
plt.axis('off')
tbl = table(ax2, df[['data_center', 'total_requests' , 'fast', 'slow', 'fail']], loc='center')
tbl.scale(1.5, 1.5)
tbl.auto_set_font_size(False)
tbl.set_fontsize(14)
plt.show()
fig.savefig('success_ratio.png')
if __name__ == '__main__':
df = pd.read_csv('apdex.csv')
apdex(df)