如何使用Docker快速配置数据科学开发环境(3)

from sklearn import datasets from sklearn.cross_validation import cross_val_predict from sklearn import linear_model import matplotlib.pyplot as plt %matplotlib inline lr = linear_model.LinearRegression() boston = datasets.load_boston() y = boston.target predicted = cross_val_predict(lr, boston.data, y, cv=10) fig, ax = plt.subplots() ax.scatter(y, predicted) ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4) ax.set_xlabel('Measured') ax.set_ylabel('Predicted') plt.show()

添加数据文件

如果你想往开发环境中添加数据文件,你有三个选择。第一个选择,就是将文件放在你之前创建用来存放notebook的文件夹中。你放那里的任何文件将可以自动通过Jupyter notebook中访问。

第二种选择就是使用docker cp命令。docker cp可以从本地机器复制文件至容器中,反之亦然。假设你想拷贝/hom/vik/data.csv文件至一个id为4greg24134的容器中,你可以输入下面的命令:docker cp /home/vik/data.csv 4greg24134:/home/ds/notebooks。这会将data.csv文件拷贝到容器中用于存放notebook的文件夹中。当然,你可以选择将文件放到容器中的任何地方,但是把它们放在存放notebook的文件夹忠厚,你就可以轻松地通过Jupyter notebook访问这些文件了。

第三个选择就是使用Jupyter notebook首页右上方的upload按钮。这可以让你选择一个文件,并上传到容器中用于存放notebook的文件夹中。

不管你使用哪种方法,要想在Jupyter notebook中加载文件,需要按照类似下面的方式进行:

import pandas data = pandas.read_csv("data.csv")

复制容器中的数据文件

你可能会需要从容器中拷贝文件至本地机器。最容易的办法就是把文件放置在/home/ds/notebooks文件夹中,这样的话这些文件就会自动映像到本地机器。

另一种方法也就是利用docker cp命令。假设你想从id为4greg24314的容器中,把/home/ds/notebooks/data.csv文件拷贝至本地机器的/home/vik/文件夹中,你可以输入下面的命令:cp 4greg24134:/home/ds/notebooks/data.csv /home/vik/data.csv。

最后一种方法就是使用Jupyter界面中的download选项。在网页模式下点击一个不是notebook的文件,将会将其下载至本地。如果你已经打开了一个notebook,那么可以先点击File,然后选中download as就可以下载至本地。

安装更多的工具包

如果你想在容器中安装更多的工具包,你可以通过正常的bash命令行命令就可以实现。要想在容器中执行这些命令,你需要运行docker exec命令。这个命令接受容器的id作为参数,以及一个期望运行的命令。例如输入docker exec -it 4greg24134 /bin/bash将会在编码为4greg24134的容器中开启一个shell命令提示符(shell prompt)。-it选项确保我们在容器中打开了一个输入会话,并且可以输入命令。

在运行docker exec命令之后,你就会看到容器中的shell命令提示符(shell prompt)出现。容器此时正通过一个名为ds的虚拟环境运行Python程序,这个虚拟环境已经是处于激活状态的。

接下来,只需要输入pip install PACKAGE_NAME就可以安装其他的工具包。例如,你可以使用pip install requests来安装requests。

当你希望退出容器的shell终端时,只需要输入exit即可。

关闭docker容器

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5598d92bb40ae7035cfd9defb2aa201c.html