链接:https://www.zhihu.com/question/58033789/answer/254673663
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
事实上Anaconda 和 Jupyter notebook已成为数据分析的标准环境。
简单来说,Anaconda是包管理器和环境管理器,Jupyter notebook 可以将数据分析的代码、图像和文档全部组合到一个web文档中。
接下来我详细介绍下Anaconda,并在最后给出Jupyter notebook:
1.Anaconda是什么?
2.如何安装?
3. 如何管理包?
4.如何管理环境?
5.Jupyter notebook如何快速上手?
不过在开始前我需要强调下,下面的步骤你要亲自跟着敲一遍并在自己的电脑上实践。虽然下面你会遇到很多命令,给了谁都记不住的。但是别怕,也别中途放弃,因为你没必要记住命令,因为当你在后面学习数据分析用的多了,自然就记住了。
记不住也没关系,学会在哪查找就可以了。你只需要跟着上面步骤操作下,并理解了每一步是干什么的就可以了。后面遇到要做的事情,忘记了回头查这个文档就可以了。
刚开始学习的过程就像下面这个图,只要中途不放弃,自己实际操作一遍,我保证你可以熟练上手。
<img src="https://pic4.zhimg.com/50/v2-17d0d8c61591b46f7d0e704bcb4ce9e8_hd.gif" data-caption="" data-size="normal" data-rawwidth="284" data-rawheight="344" data-thumbnail="https://i-blog.csdnimg.cn/blog_migrate/4de19040eead49ded63df36cfe4b9abf.jpeg" class="content_image" width="284">1.Anaconda是什么?
Anaconda在英文中是“蟒蛇”,麻辣鸡(Nicki Minaj妮琪·米娜)有首歌就叫《Anaconda》,表示像蟒蛇一样性感妖娆的身体。
<img src="https://pic2.zhimg.com/50/v2-152adf3e7a247a612f4b08ce5786f439_hd.jpg" data-caption="" data-size="normal" data-rawwidth="757" data-rawheight="592" class="origin_image zh-lightbox-thumb" width="757" data-original="https://pic2.zhimg.com/v2-152adf3e7a247a612f4b08ce5786f439_r.jpg">所有你看下面Anaconda的图标就像一个收尾互相咬住的“蟒蛇”。
<img src="https://pic1.zhimg.com/50/v2-3e35b424d5820055f7b3674c1b5fe78b_hd.jpg" data-caption="" data-size="normal" data-rawwidth="615" data-rawheight="290" class="origin_image zh-lightbox-thumb" width="615" data-original="https://pic1.zhimg.com/v2-3e35b424d5820055f7b3674c1b5fe78b_r.jpg">你可能已经安装了 Python,那么为什么还需要 Anaconda?有以下3个原因:
1)Anaconda 附带了一大批常用数据科学包,它附带了 conda、Python 和 150 多个科学包及其依赖项。因此你可以立即开始处理数据。
2)管理包
Anaconda 是在 conda(一个包管理器和环境管理器)上发展出来的。
在数据分析中,你会用到很多第三方的包,而conda(包管理器)可以很好的帮助你在计算机上安装和管理这些包,包括安装、卸载和更新包。
3)管理环境
为什么需要管理环境呢?
比如你在A项目中用了 Python 2,而新的项目B老大要求使用Python 3,而同时安装两个Python版本可能会造成许多混乱和错误。这时候 conda就可以帮助你为不同的项目建立不同的运行环境。
还有很多项目使用的包版本不同,比如不同的pandas版本,不可能同时安装两个 Numpy 版本,你要做的应该是,为每个 Numpy 版本创建一个环境,然后项目的对应环境中工作。这时候conda就可以帮你做到。
2. 如何安装Anaconda?
Anaconda 可用于多个平台( Windows、Mac OS X 和 Linux)。你可以在下面地址上找到安装程序和安装说明。根据你的操作系统是32位还是64位选择对应的版本下载。
(Anaconda已经不支持Windows XP;同时查看自己电脑是32位还是64位,不要装错了。)
官网地址:https://www.continuum.io/downloads
如果官网地址网速太慢无法下载,可以从我公众号:猴子聊人物,中回复“资料”从网盘下载
<img src="https://pic1.zhimg.com/50/v2-7c69dc58ad329c60a8ad36f13270498d_hd.jpg" data-caption="" data-size="normal" data-rawwidth="657" data-rawheight="136" class="origin_image zh-lightbox-thumb" width="657" data-original="https://pic1.zhimg.com/v2-7c69dc58ad329c60a8ad36f13270498d_r.jpg"> <img src="https://pic1.zhimg.com/50/v2-fe529eb1026b4828fc441b3efeb8db8f_hd.jpg" data-caption="" data-size="normal" data-rawwidth="618" data-rawheight="169" class="origin_image zh-lightbox-thumb" width="618" data-original="https://pic1.zhimg.com/v2-fe529eb1026b4828fc441b3efeb8db8f_r.jpg">Anaconda 的下载文件比较大(约 500 MB),因为它附带了 Python 中最常用的数据科学包。
如果计算机上已经安装了 Python,安装不会对你有任何影响。实际上,脚本和程序使用的默认 Python 是 Anaconda 附带的 Python。
注意:如果你是windows 10系统,注意在安装Anaconda软件的时候,右击安装软件→选择以管理员的身份运行。
<img src="https://pic1.zhimg.com/50/v2-e9596c4ec59191f7531fd6ce55eeb1bb_hd.jpg" data-caption="" data-size="normal" data-rawwidth="542" data-rawheight="542" class="origin_image zh-lightbox-thumb" width="542" data-original="https://pic1.zhimg.com/v2-e9596c4ec59191f7531fd6ce55eeb1bb_r.jpg">完成安装后,如果你是在windows上操作,按下面图打开 Anaconda Prompt (或者 Mac 下的终端),后面我会将Anaconda Prompt统一称为“终端”。
<img src="https://pic3.zhimg.com/50/v2-60a3932918cd00b883b9093ffe0f70ba_hd.jpg" data-caption="" data-size="normal" data-rawwidth="248" data-rawheight="335" class="content_image" width="248">注意:如果你是windows 10系统,按下图操作
<img src="https://pic3.zhimg.com/50/v2-9afae7b4240e4168ae0b3cb0aaff3616_hd.jpg" data-caption="" data-size="normal" data-rawwidth="451" data-rawheight="658" class="origin_image zh-lightbox-thumb" width="451" data-original="https://pic3.zhimg.com/v2-9afae7b4240e4168ae0b3cb0aaff3616_r.jpg">如果win10系统没有按上述操作,后面会报下面的错误信息:
<img src="https://pic2.zhimg.com/50/v2-1b0040f40d884a8177c6ff684d37347a_hd.jpg" data-caption="" data-size="normal" data-rawwidth="814" data-rawheight="506" class="origin_image zh-lightbox-thumb" width="814" data-original="https://pic2.zhimg.com/v2-1b0040f40d884a8177c6ff684d37347a_r.jpg">可以在终端或命令提示符中键入 conda list,以查看你安装的内容。
<img src="https://pic1.zhimg.com/50/v2-3be8d89842f8bfbac52c935dbb1d98f6_hd.jpg" data-caption="" data-size="normal" data-rawwidth="618" data-rawheight="388" class="origin_image zh-lightbox-thumb" width="618" data-original="https://pic1.zhimg.com/v2-3be8d89842f8bfbac52c935dbb1d98f6_r.jpg">PS:如果按上面操作后在Anaconda Prompt中都无法使用Conda命令,按以下顺序的解决办法来尝试(正常使用的朋友忽略这一步,继续往下):
1)检查你是否原来安装过Python,如果安装过请彻底删除Python(同时要删除环境变量)后重装Anaconda
2)检查自己是否将Conda命令添加到了环境变量,操作方法如下:
潜在悟空:数据分析之第一坑解决-- conda不是内部或者外部命令报错同时,感谢
的经验分享:当我按照上面的步骤设置好环境变了后,问题还是没有解决。其实并不是这个解决步骤有问题,而是我没有认真的看,忽略了最后的 \Scripts,这是不管安装路径在哪,最后都需要加的。此处我需要认真的反省下,遇到问题包括学习的时候,要静心,不能有任何的浮躁。另外,如果path中有任何关于anaconda、python的其他路径,都要删除,否则电脑识别不了两个路径,就会出现上述的错误。就好像有两个人给你各指了一条路,然而你并不知道哪条路是对的。
3)确保你的Anaconda安装路径不包含中文或其他非英语常用字符;
4)经过以上步骤还是没有任何改善,请卸载Anaconda重装一遍;
<img src="https://pic1.zhimg.com/50/v2-2c005cd28ab50cd710e9fbb20610bc94_hd.jpg" data-caption="" data-size="normal" data-rawwidth="1242" data-rawheight="1491" class="origin_image zh-lightbox-thumb" width="1242" data-original="https://pic1.zhimg.com/v2-2c005cd28ab50cd710e9fbb20610bc94_r.jpg">如果Anaconda Prompt中可以使用conda命令,接着下面继续操作。
为了避免后面使用报错,你需要先更新下所有包。在终端输入更新所有包的命令:
conda upgrade --all
并在提示是否更新的时候输入 y(Yes)让更新继续。初次安装下的软件包版本一般都比较老旧,因此提前更新可以避免未来不必要的问题。
如果运行以上命令或者安装包报下面的错误信息:
<img src="https://pic3.zhimg.com/50/v2-b0f06cba8b2e1c6713cf655b3278cd0d_hd.jpg" data-caption="" data-size="normal" data-rawwidth="619" data-rawheight="266" class="origin_image zh-lightbox-thumb" width="619" data-original="https://pic3.zhimg.com/v2-b0f06cba8b2e1c6713cf655b3278cd0d_r.jpg">可以用下面的解决办法(在终端中运行以下命令):
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
如果命令行方法添加不上,可以在“notebook工作文件夹”找到文件.condarc,
什么是你的“notebook工作文件夹”呢?
默认情况下,是你启动Anaconda Prompt终端中的那个文件夹,比如我电脑上是下面这个文件夹(Windows为C://Users/username/.condarc,Linux/Mac为~/.condarc):
<img src="https://pic3.zhimg.com/50/v2-1492a4dd76ac25bae067ab23c0ad20f2_hd.jpg" data-caption="" data-size="normal" data-rawwidth="675" data-rawheight="87" class="origin_image zh-lightbox-thumb" width="675" data-original="https://pic3.zhimg.com/v2-1492a4dd76ac25bae067ab23c0ad20f2_r.jpg">打开该文件夹,修改文件内容如下:
(如果没有找到.condarc,用notepad++软件在“notebook工作文件夹”下新建一个该文件即可,并添加以下内容)
<img src="https://pic1.zhimg.com/50/v2-f85bf433c69ce8044f46e54664f9aac8_hd.jpg" data-caption="" data-size="normal" data-rawwidth="536" data-rawheight="173" class="origin_image zh-lightbox-thumb" width="536" data-original="https://pic1.zhimg.com/v2-f85bf433c69ce8044f46e54664f9aac8_r.jpg">为了方便,你可以将下面部分直接复制到上面的文件中:
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: yes
3. 如何管理包?
安装了 Anaconda 之后,就可以很方便的管理包了(安装,卸载,更新)。
1)安装包
在终端中键入:
conda install package_name
例如,要安装 pandas,在终端中输入:
conda install pandas
你还可以同时安装多个包。类似 conda install pandas numpy 的命令会同时安装所有这些包。还可以通过添加版本号(例如 conda install numpy=1.10)来指定所需的包版本。
conda 还会自动为你安装依赖项。例如,scipy 依赖于 numpy,因为它使用并需要 numpy。如果你只安装 scipy (conda install scipy),则 conda 还会安装 numpy(如果尚未安装的话)。
2)卸载包
在终端中键入 :
conda remove package_names
上面命令中的package_names是指你要卸载包的名称,例如你想卸载pandas包:conda remove pandas
3)更新包
在终端中键入:
conda update package_name
如果想更新环境中的所有包(这样做常常很有用),使用:conda update --all。
4)列出已安装的包
#列出已安装的包
conda list
例如我已经成功安装了numpy和pandas这两个常用的包。
<img src="https://pic2.zhimg.com/50/v2-dc3296d183fd1f870635ecfea113fb1c_hd.jpg" data-caption="" data-size="normal" data-rawwidth="610" data-rawheight="388" class="origin_image zh-lightbox-thumb" width="610" data-original="https://pic2.zhimg.com/v2-dc3296d183fd1f870635ecfea113fb1c_r.jpg">如果不知道要找的包的确切名称,可以尝试使用 conda search search_term 进行搜索。例如,我知道我想安装numpy,但我不清楚确切的包名称。我可以这样尝试:conda search num。
4.如何管理环境?
conda 可以为你不同的项目建立不同的运行环境。
0)安装nb_conda用于notebook自动关联nb_conda的环境。
<img src="https://pic1.zhimg.com/50/v2-cd28aeeaf8e69e8daba4e70009e59a62_hd.jpg" data-caption="" data-size="normal" data-rawwidth="674" data-rawheight="436" class="origin_image zh-lightbox-thumb" width="674" data-original="https://pic1.zhimg.com/v2-cd28aeeaf8e69e8daba4e70009e59a62_r.jpg">1)创建环境
在终端中使用:
conda create -n env_name package_names
上面的命令中,env_name 是设置环境的名称(-n 是指该命令后面的env_name是你要创建环境的名称),package_names 是你要安装在创建环境中的包名称。
例如,要创建环境名称为 py3 的环境并在其中安装 numpy,在终端中输入 conda create -n py3 pandas。
<img src="https://pic3.zhimg.com/50/v2-e0dcd728b90c1f989a452abc1c644101_hd.jpg" data-caption="" data-size="normal" data-rawwidth="674" data-rawheight="227" class="origin_image zh-lightbox-thumb" width="674" data-original="https://pic3.zhimg.com/v2-e0dcd728b90c1f989a452abc1c644101_r.jpg">2)创建环境时,可以指定要安装在环境中的 Python 版本
当你同时使用 Python 2.x 和 Python 3.x 中的代码时这很有用。要创建具有特定 Python 版本的环境,例如创建环境名称为py3,并安装最新版本的Python3在终端中输入:
conda create -n py3 python=3
或也可以这样创建环境名称为py2,并安装最新版本的Python2:
conda create -n py2 python=2
因为我做的项目不同,有时候会用到Python2,还有时候会用到Python3。所以我在自己的计算机上创建了这两个环境,并分别取了这样的环境名称:py2,py3。这样我可以根据不同的项目轻松使用不同版本的python。
如果你要安装特定版本(例如 Python 3.6),请使用 conda create -n py python=3.6
3)进入环境
在 Windows 上,你可以使用 activate my_env进入。在 OSX/Linux 上使用 source activate my_env 进入环境。
进入环境后,你会在终端提示符中看到环境名称,下面图片是我进入py3的环境(这里的py3是我上面创建环境时自己起的名称,你可以起个自己喜欢的名称)。
<img src="https://pic2.zhimg.com/50/v2-f6899ad25feedc55f65b90a2ea4170de_hd.jpg" data-caption="" data-size="normal" data-rawwidth="617" data-rawheight="115" class="origin_image zh-lightbox-thumb" width="617" data-original="https://pic2.zhimg.com/v2-f6899ad25feedc55f65b90a2ea4170de_r.jpg">进入环境后,我可以用conda list 查看环境中默认安装的几个包:
<img src="https://pic3.zhimg.com/50/v2-11cab00b20c13cdc5af9d741854bed67_hd.jpg" data-caption="" data-size="normal" data-rawwidth="523" data-rawheight="301" class="origin_image zh-lightbox-thumb" width="523" data-original="https://pic3.zhimg.com/v2-11cab00b20c13cdc5af9d741854bed67_r.jpg">在环境中安装包的命令与前面一样:conda install package_name。
不过,这次你安装的特定包仅在你进入环境后才可用。
3)离开环境
在 Windows 上,终端中输入:
deactivate
在 OSX/Linux 上 输入:
source deactivate
4)共享环境
共享环境非常有用,它能让其他人安装你的代码中使用的所有包,并确保这些包的版本正确。比如你开发了一个药店数据分析系统,你要提交给项目部署系统的王二狗来部署你的项目,但是王二狗并不知道你当时开发时使用的是哪个python版本,以及使用了哪些包和包的版本。这怎么办呢?
你可以在你当前的环境中终端中使用 conda env export > environment.yaml 将你当前的环境保存到文件中包保存为YAML文件(包括Pyhton版本和所有包的名称)。
命令的第一部分 conda env export 用于输出环境中的所有包的名称(包括 Python 版本)。
<img src="https://pic1.zhimg.com/50/v2-b136666ef127c5b65075a485ce2b2b41_hd.jpg" data-caption="" data-size="normal" data-rawwidth="611" data-rawheight="113" class="origin_image zh-lightbox-thumb" width="611" data-original="https://pic1.zhimg.com/v2-b136666ef127c5b65075a485ce2b2b41_r.jpg">在“notebook工作文件夹”下(及你在终端中上图的路径)可以看到导出的环境文件:
<img src="https://pic3.zhimg.com/50/v2-9eaa081fbe54c59d35c792dd968a3515_hd.jpg" data-caption="" data-size="normal" data-rawwidth="280" data-rawheight="191" class="content_image" width="280">在 GitHub 上共享代码时,最好同样创建环境文件并将其包括在代码库中。这能让其他人更轻松地安装你的代码的所有依赖项。
导出的环境文件,在其他电脑环境中如何使用呢?
首先在conda中进入你的环境,比如activate py3
然后在使用以下命令更新你的环境:
#其中-f表示你要导出文件在本地的路径,所以/path/to/environment.yml要换成你本地的实际路径
conda env update -f=/path/to/environment.yml
对于不使用 conda 的用户,我通常还会使用 pip freeze > environment.txt 将一个 txt文件导出并包括在其中。
具体见这里:https://pip.pypa.io/en/stable/reference/pip_freeze/
举个例子你可能更容易理解这个使用场景:
首先,我在自己的电脑上在conda中将项目的包导出成environment.txt 文件:
<img src="https://pic1.zhimg.com/50/v2-8fbf8a5edd8d5bf1ba5cca1097098168_hd.jpg" data-caption="" data-size="normal" data-rawwidth="675" data-rawheight="120" class="origin_image zh-lightbox-thumb" width="675" data-original="https://pic1.zhimg.com/v2-8fbf8a5edd8d5bf1ba5cca1097098168_r.jpg">然后我将该文件包含在项目的代码库中,其他项目成员即使在他的电脑上没有安装conda也可以使用该文件来安装和我一样的开发环境:
他在自己的电脑上进入python命令环境,然后运行以下命令就可以安装该项目需要的包:
pip install -r /path/requirements.txt
其中/path/requirements.txt是该文件在你电脑上的实际路径。
<img src="https://pic2.zhimg.com/50/v2-9d5f722f0c60393b74730a6f2734cac6_hd.jpg" data-caption="" data-size="normal" data-rawwidth="834" data-rawheight="222" class="origin_image zh-lightbox-thumb" width="834" data-original="https://pic2.zhimg.com/v2-9d5f722f0c60393b74730a6f2734cac6_r.jpg">5)列出环境
我有时候会忘记自己创建的环境名称,这时候用 conda env list 就可以列出你创建的所有环境。
你会看到环境的列表,而且你当前所在环境的旁边会有一个星号。默认的环境(即当你不在选定环境中时使用的环境)名为 root。
<img src="https://pic1.zhimg.com/50/v2-8f7a92b366e5eaf576ad2ee38393dcac_hd.jpg" data-caption="" data-size="normal" data-rawwidth="615" data-rawheight="146" class="origin_image zh-lightbox-thumb" width="615" data-original="https://pic1.zhimg.com/v2-8f7a92b366e5eaf576ad2ee38393dcac_r.jpg">6)删除环境
如果你不再使用某个环境,可以使用 conda env remove -n env_name 删除指定的环境(在这里环境名为 env_name)。
最后重新再强调下,不要被上面的命令吓到。虽然上述命令多,给了谁都记不住的。后面你跟着我在知乎上多做项目,用的多了自然记住了。你只需要跟着上面步骤操作下,并理解了每一步是干什么的就可以了。后面遇到要做的事情,忘记了回头查这个文档就可以了。
conda的官方文档:https://conda.io/docs/user-guide/tasks/index.html
按照上面的步骤你亲自操作一遍后,你已经学会了Anaconda,并安装好你的数据分析Pyhton环境了,接下来你就可以愉快的使用Jupyter notebook来做数据分析了:猴子:jupyter notebook 可以做哪些事情?
常见问题汇总:
1.conda不是内部命令
<img src="https://pic2.zhimg.com/50/v2-5de48cf61375ec442bbea085426299c3_hd.jpg" data-caption="" data-size="normal" data-rawwidth="328" data-rawheight="528" class="content_image" width="328">完成安装后,如果你是在windows上操作,需要按下面图打开 Anaconda Prompt (或者 Mac 下的终端),后面我会将Anaconda Prompt统一称为“终端”。
<img src="https://pic3.zhimg.com/50/v2-60a3932918cd00b883b9093ffe0f70ba_hd.jpg" data-caption="" data-size="normal" data-rawwidth="248" data-rawheight="335" class="content_image" width="248">2.有时候用conda安装不上包,我们可以使用pip来安装。比如我在安装股票数据pandas_datareader包时,就使用pip来安装才成功。
<img src="https://pic1.zhimg.com/50/v2-fc5e654f20fef1897328b9d17348e9e4_hd.jpg" data-caption="" data-size="normal" data-rawwidth="494" data-rawheight="458" class="origin_image zh-lightbox-thumb" width="494" data-original="https://pic1.zhimg.com/v2-fc5e654f20fef1897328b9d17348e9e4_r.jpg">