macOS 使用Miniconda配置本地数据运算环境
目前,做数据分析工作,基本人手Numpy,pandas,scikit-learn。而这些计算程序包都是基于python平台的,所以搞数据的都得先装个python环境。。。(当然,你用R或Julia请忽略本文)
在macOS上,默认安装有python 2.7,鉴于python2即将停止更新,如果没有大量的python2代码需要维护,就直接安装python3吧。
版本选择
做数据运算,流行的方式是直接下载Anaconda安装包,大概500M左右,各种依赖包(绑定了四五百个科学计算程序包),开发工具(jupyter notebook,spyder)一股脑儿都包含了,按照步骤安装完成,开箱即用,不过装完后会占用几个G的硬盘空间。
我这边由于硬盘空间有限,采用Miniconda这个发行版本,最新的基于python3.7版本的不到50M。而Miniconda一样使用conda作为包管理器,可以轻松的安装自己需要的包,例如Numpy,pandas, matplotlib等等。
当然,也可以从安装包或homebrew开始装,然后再使用pip来安装相关的程序包。总体上来说,python自身的版本和执行路径是相当混乱的,可参考下图。

安装步骤
- 下载
先从官网https://docs.conda.io/en/latest/miniconda.html下载适合自己操作系统的版本,Miniconda
支持Windows/Linux/macOS这三种主流操作系统。如果遇到官网下载慢的问题,可以考虑国内的镜像站点,如https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/。
下载完成后,可以先核对下hash值,与官网的值(5cf91dde8f6024061c8b9239a1b4c34380238297adbdb9ef2061eb9d1a7f69bc)是否一致保证安装文件未被篡改。
$ shasum -a 256 Miniconda3-latest-MacOSX-x86_64.sh
5cf91dde8f6024061c8b9239a1b4c34380238297adbdb9ef2061eb9d1a7f69bc Miniconda3-latest-MacOSX-x86_64.sh
- 执行安装
$ bash ./Miniconda3-latest-MacOSX-x86_64.sh
Welcome to Miniconda3 4.7.12
In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
Do you accept the license terms? [yes|no]
[no] >>> yes
Miniconda3 will now be installed into this location:
/Users/shenfeng/miniconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/Users/shenfeng/miniconda3] >>>
>>>
按照提示,敲击回车。中间需要同意使用条款,需要输入yes,按照路径点回车默认即可。
Do you wish the installer to initialize Miniconda3
by running conda init? [yes|no]
[yes] >>> yes
==> For changes to take effect, close and re-open your current shell. <==
If you'd prefer that conda's base environment not be activated on startup,
set the auto_activate_base parameter to false:
conda config --set auto_activate_base false
Thank you for installing Miniconda3!
最后的提示是,可以用conda config --set auto_activate_base false命令取消python3环境在启动时自行加载。
- 重新开一个新的终端
可以发现,python3的env已经生效了。
(base) my:~ shenfeng$ python
Python 3.7.4 (default, Aug 13 2019, 15:17:50)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
- 查看env配置
$ conda env list
# conda environments:
#
base * /Users/shenfeng/miniconda3
使用conda deactivate可以python3的执行环境,使用conda activate base可以激活默认的python3环境。
- 添加国内镜像源
由于conda的包服务器都在海外,直接连接安装可能出现连接超时无法完成的时候,所以可以通过修改用户目录下的.condarc文件。
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
- 使用conda安装相应的程序包
先使用conda list检查已经安装的包,使用conda install需要的程序包
$ $ conda list numpy
# packages in environment at /Users/shenfeng/miniconda3:
#
# Name Version Build Channel
$ conda install numpy
$ conda list numpy
# packages in environment at /Users/shenfeng/miniconda3:
#
# Name Version Build Channel
numpy 1.17.3 py37h4174a10_0 defaults
numpy-base 1.17.3 py37h6575580_0 defaults
相同的方式,我们可以安装scipy,pandas等包,不再赘述。
交互式工具安装
大家耳熟能详的交互式工具肯定就是Jupyter notebook,但我在本机同样由于磁盘空间问题只安装ipython。实际上,Jupyter是基于ipython notebook的浏览器版本。
- 安装
$ conda install ipython
- 执行ipython交互
$ ipython
Python 3.7.4 (default, Aug 13 2019, 15:17:50)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.9.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import numpy as np
In [2]: dataset= [2,6,8,12,18,24,28,32]
In [3]: sd= np.std(dataset,ddof=1)
In [4]: print(sd)
10.977249200050075
样例数据处理
先从网上下载一个样例数据https://pan.baidu.com/s/1lXAnyvSoti-U44MU2fubgw,为excel文件,另存为成csv进行处理。
以下结合上周文章中的概括性度量,计算这组数据的概括性度量。
- 读取数据
import numpy as np
from scipy import stats
dataset = np.genfromtxt('/Users/shenfeng/Downloads/test1.csv',delimiter=',', skip_header=1)
print('Shape of numpy array: ', dataset.shape)
Shape of numpy array: (699,)
集中趋势的度量
- 众数
mode = stats.mode(dataset)
print('该组数据的众数为: ', mode)
该组数据的众数为: ModeResult(mode=array([1.]), count=array([145]))
# 结果说明众数为1,出现了145次
- 中位数
print('该组数据的中位数为: ', np.median(dataset))
该组数据的中位数为: 4.0
- 四分位数
# 不需要提前排序
print("1/4分位数: ", np.percentile(dataset, 25, interpolation='linear'))
1/4分位数: 2.0
print("1/2分位数: ", np.percentile(dataset, 50, interpolation='linear'))
1/2分位数: 4.0
print("3/4分位数: ", np.percentile(dataset, 75, interpolation='linear'))
3/4分位数: 6.0
- 平均数
print('该组数据的平均数为: ', np.mean(dataset))
该组数据的平均数为: 4.417739628040057
离散程度的度量
- 标准差
print('该组数据的总体标准差为: ', np.std(dataset,ddof=0))
该组数据的总体标准差为: 2.8137258170785375
- 标准分数
# 变量值与其平均数的离差除以标准差后的称为标准分数(standard score)
print('该组数据的标准分数为: ', stats.zscore(dataset))
该组数据的标准分数为: [ 0.20693572 0.20693572 -0.50386559 0.56233637 -0.14846494 1.27313768
-1.2146669 -0.85926625 -0.85926625 -0.14846494 -1.2146669 -0.85926625 ...省略 ]
- 离散系数
# 离散系数是测度数据离散程度的统计量,主要用于比较不同样本数据的离散程度。
print('该组数据的离散系数为: ', stats.variation(dataset))
该组数据的离散系数为: 0.6369152675317026
偏态与峰态的度量
- 数据分布图
import matplotlib.pyplot as plt
plt.style.use('ggplot')
plt.hist(dataset, bins=30)
获得以下分布图

- 偏态
print('该组数据的偏态系数为: ', stats.skew(dataset))
该组数据的偏态系数为: 0.5915855449527385
# 偏态系数在0.5~1或-1~-0.5之间,则认为是中等偏态分布
- 峰态系数
print('该组数据的峰态系数为: ', stats.kurtosis(dataset))
该组数据的峰态系数为: -0.6278342838815454
# 当K<0时为扁平分布,数据的分布更分散
总结
本文使用Miniconda发行版配置本地数据运算环境,并对样例做数据的概括性度量。
macOS 使用Miniconda配置本地数据运算环境的更多相关文章
- Windows配置本地Hadoop运行环境
很多人喜欢用Windows本地开发Hadoop程序,这里是一个在Windows下配置Hadoop的教程. 首先去官网下载hadoop,这里需要下载一个工具winutils,这个工具是编译hadoop用 ...
- SDP(10):文本式大数据运算环境-MongoDB-Engine功能设计
为了让前面规划的互联网+数据平台能有效对电子商务数据进行管理及实现大数据统计功能,必须在平台上再增加一个MongDB-Engine:数据平台用户通过传入一种Context来指示MongoDB-Engi ...
- VUE请求本地数据的配置json-server
VUE开发请求本地数据的配置,早期的vue-lic下面有dev-server.js和dev-client.js两文件,请求本地数据在dev-server.js里配置,最新的vue-webpack-te ...
- VUE开发请求本地数据的配置,旧版本dev-server.js,新版本webpack.dev.conf.js
VUE开发请求本地数据的配置,早期的vue-lic下面有dev-server.js和dev-client.js两文件,请求本地数据在dev-server.js里配置,最新的vue-webpack-te ...
- 高仿饿了么mock本地数据
未使用router新版webpack.dev.conf.js配置本地数据访问:// 引入express 模块 const express = require('express') // 创建expre ...
- 超详细!搭建本地大数据研发环境(16G内存+CDH)
工欲善其事必先利其器,在经过大量的理论学习以后,需要有一个本地的研发环境来进行练手.已经工作的可以不依赖于公司的环境,在家也可以随意的练习.而自学大数据的同学,也可以进行本地练习,大数据是一门偏实践的 ...
- 在MacOs上配置Hadoop和Spark环境
在MacOs上配置hadoop和spark环境 Setting up Hadoop with Spark on MacOs Instructions 准备环境 如果没有brew,先google怎样安装 ...
- 虚拟机console基础环境部署——配置本地YUM源
1. CD/ROM装载系统镜像2. 挂载设备3. 配置本地源4. 总结 有关YUM源及Linux系统三大软件管理方式,参照博客<CentOS系统三大软件管理>,笔记内链:CentOS系统三 ...
- Vue CLI 3.0脚手架如何在本地配置mock数据
前后端分离的开发模式已经是目前前端的主流模式,至于为什么会前后端分离的开发我们就不做过多的阐述,既然是前后端分离的模式开发肯定是离不开前端的数据模拟阶段. 我们在开发的过程中,由于后台接口的没有完成或 ...
随机推荐
- npm install bcrypt报错
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env va ...
- 一次对php大马的后门的简单分析
有人分享了一个php大马(说是过waf),八成有后门,简单分析了一次 <?php $password='Shiqi';//登录密码(支持菜刀) //----------功能程序--------- ...
- MySQL make_set()的用法
MAKE_SET(bits,str1,str2,…)返回一个设定值(含子字符串分隔字符串","字符),在设置位的相应位的字符串.str1对应于位0,str2到第1位,依此类推.在s ...
- [Luogu3554] Poi2013 Triumphal arch
Description Foreseeable和拿破仑的御用建筑师让·夏格伦在玩游戏 让·夏格伦会玩一个叫“凯旋门”的游戏:现在有一棵n个节点的树,表示一个国家 1号点代表这个国家的首都 这个游戏由两 ...
- 关于StreamReader的知识分享
今天我们来简单的介绍一下StreamReader,在将StreamReader之前,我们先来了解一下他的父类:TextReader.对于TextReader,大家可能比较陌生,下面我们来看一下Text ...
- Python编程系列---使用装饰器传参+字典实现动态路由
# 实现一个空路由表,利用装饰器将url和功能函数的对应关系自动存到这个字典中 router_dict = {} # 定义一个装饰器 # 再给一层函数定义,用来传入一个参数,这个参数就是访问的页面地址 ...
- 每日温度(LeetCode Medium难度算法题)题解
LeetCode 题号739中等难度 每日温度 题目描述: 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 ...
- EXC_BAD_ACCESS的本质详解以及僵尸模式调试原理
原文:What Is EXC_BAD_ACCESS and How to Debug It 有时候,你会遇到由EXC_BAD_ACCESS造成的崩溃. 这篇文章会告诉你什么是EXC_BAD_ACCES ...
- 百万年薪python之路 -- 面向对象初始
面向对象初始 1.1 面向过程编程vs函数式编程 函数编程较之面向过程编程最明显的两个特点: 1,减少代码的重用性. 2,增强代码的可读性. 1.2 函数式编程vs面向对象编程 面向对象编程:是一类相 ...
- 云开发如何解决serverless对端的最后一公里问题
前端圈从来不缺少新的技术.点子和话题,有些留下来了而有些则转瞬即逝.在决定一种新技术是否能够长久的所有因素里,最核心的必然是自身实力过硬能够经受住实践检验.而除此之外,这项技术所解决问题的广泛程度.受 ...