使用python构建向量空间_使用Docker构建Python数据科学容器
人工智能(AI)和机器学习(ML)最近真的火了,并驱动了从自动驾驶汽车到药物发现等等应用领域的快速发展。AI和ML的前途一片光明。
另一方面,Docker通过引入临时轻量级容器彻底改变了计算世界。通过使用一个COW(写时拷贝)层来保存数据,容器基本上封装了在一个映像(一堆只读层)中运行所需的所有软件。废话少说,让我们开始构建一个Python数据科学容器吧。
Python数据科学包
我们的Python数据科学容器利用了以下超酷的Python包:
NumPy: NumPy或Numeric Python支持大型、多维数组和矩阵。它为数学和数值操作提供了快速的预编译函数。此外,NumPy还使用强大的数据结构优化了Python编程,以便高效地计算多维数组和矩阵。
SciPy: SciPy为回归、最小化、傅里叶变换等提供了有用的函数。基于NumPy, SciPy扩展了它的功能。SciPy的主要数据结构也是一个多维数组,由Numpy实现。该软件包包含了能帮助我们解决线性代数、概率论、积分和更多任务的工具。
Pandas: Pandas为操作数据结构和执行广泛的数据分析提供了功能强大的工具。它可以很好地处理不完整的、非结构化的和无序的真实数据,并提供了用于整形、聚合、分析和可视化数据集的工具。
SciKit-Learn: SciKit-Learn是一个集成了各种最先进的机器学习算法的Python模块,可用于中等规模的监督和无监督学习的问题。它是最著名的python机器学习库之一。Scikit-learn包侧重于使用通用高级语言将机器学习带给非专业人士。主要强调的是易用性、性能、文档和API一致性。SciKit-Learn授权于简化的BSD许可下,具有最小的依赖项并易于分发,被广泛应用于学术和商业环境。Scikit-learn为常见的机器学习算法提供了一个简洁和一致的接口,从而使将ML引入生产系统中变得容易。
Matplotlib: Matplotlib是一个Python 2D绘图库,能够在多种硬拷贝格式和跨平台的交互式环境中生成出版物质量图。Matplotlib可用于Python脚本、Python和IPython shell、Jupyter笔记本、web应用服务器和四个图形用户界面工具包中。
NLTK: NLTK是一个用于构建处理人类语言数据的Python程序的领先平台。它为50多个语料库和词汇资源(如WordNet)提供了易于使用的接口,以及一套用于分类、标记、词干分析、标签化、解析和语义推理的文本处理库。
构建数据科学容器
Python正迅速成为数据科学家的首选语言,因此我们将使用Python作为构建我们数据科学容器的首选语言。
基础Alpine Linux映像
Alpine Linux是一个很小的Linux发行版,专为喜欢安全性、简单性和资源效率的高级用户设计。
正如Alpine所宣称的:
小。简单。安全。Alpine Linux是一个面向安全的轻量级Linux发行版,基于musl libc和busybox。
Alpine映像非常小,其中容器的大小不超过8MB。通过最小化的包安装来减少底层容器上的攻击面。这使得Alpine成为我们数据科学容器的一个选择映像。
下载并运行Alpine Linux容器非常简单,使用以下命令:
在我们的Dockerfile中,我们可以简单地通过以下命令来使用Alpine 基础映像:
多说无益,我们来构建Dockerfile
现在让我们来构建Dockerfile.
FROM指令用于将alpine-latest设置为基本映像。使用WORKDIR指令,我们将/var/www设置为我们容器的工作目录。ENV PACKAGES列出了我们的容器所需的软件包,如git、blas和libgfortran。我们的数据科学容器所需的python包被定义在ENV PACKAGES中。
我们将所有的命令合并到一个Dockerfile RUN指令下,以减少层数,从而帮助我们减少最终的映像大小。
构建和标签化映像
现在我们已经定义了我们的Dockerfile,使用终端导航到Dockerfile所在的文件夹,并使用以下命令构建映像:
-t标志用于以“name-tag”格式命名一个标记。-f标记用于定义Dockerfile的名称(默认为“PATH/Dockerfile”)。
运行容器
我们已经成功地构建并标签化了docker映像,现在我们可以使用以下命令来运行该容器:
瞧,我们可以看到一个python shell已经准备好执行各种很酷的数据科学的东西了。
我们的容器附带了Python2.7,但是如果你想使用Python3.6,也不要难过。瞧,你可以查看Python 3.6的Dockerfile:
像这样构建和标签化映像:
像这样运行该容器:
这样做了之后,你就有了一个可以用来完成各种很酷的数据科学工作的容器了。
福利
你有足够的时间和资源来建立这些东西。如果你没有,你可以拉取我已经构建并提交到Docker注册中心Docker Hub的现有映像,使用以下命令:
在拉取映像之后,你可以使用该映像或在你的Dockerfile文件中扩展相同的映像,或者你也可以在你的docker-compose或stack文件中将其作为一个映像使用。
最后
AI和ML的世界最近正在变得异常火热,并且将继续变得更加火热。大型企业正在这些领域大举投资。当你开始利用数据的力量时,谁知道它可能会带来一些什么样的不可思议的东西。
你可以在这里查看代码。
faizanbashir / python-datascience(地址:https://github.com/faizanbashir/python-datascience )
我希望本文有助于你为你的数据科学项目构建容器。
本文最初发表于HackerNoon
英文原文:https://faizanbashir.me/building-python-data-science-container-using-docker-c8e346295669
译者:Nothing
使用python构建向量空间_使用Docker构建Python数据科学容器相关推荐
- docker容器化python开发环境_如何 Docker 化 Python Django 应用程序
Docker 是一个开源项目,为开发人员和系统管理员提供了一个开放平台,可以将应用程序构建.打包为一个轻量级容器,并在任何地方运行.Docker 会在软件容器中自动部署应用程序. Django 是一个 ...
- python编程基础_月隐学python第2课
python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...
- 查看Python的版本_查看当前安装Python的版本
一.查看Python的版本_查看当前安装Python的版本 具体方法: 首先按[win+r]组合键打开运行: 然后输入cmd,点击[确定]: 最后执行[python --version]命令即可. 特 ...
- python问题分享_零基础入门Python常见问题分享
零基础入门Python常见问题有哪些?作为经常混迹在各大Python技术论坛的小编而言,见到最多的话题就是:学习Python难不难?零基础可以学习Python吗?如何学习Python?等等.今天小编就 ...
- 快速数据库框架_快速学习新的数据科学概念的框架
快速数据库框架 重点 (Top highlight) 数据科学 (Data Science) Success in data science and software engineering depe ...
- 唐宇迪机器学习课程数据集_最受欢迎的数据科学和机器学习课程-2020年8月
唐宇迪机器学习课程数据集 There are a lot of great online resources and websites on data science and machine lear ...
- Docker机器学习和数据科学大师班
Docker机器学习和数据科学大师班 了解如何使用 Docker 容器化和部署您的机器学习项目 此视频教程共4.0小时,中英双语字幕,画质清晰无水印,源码附件全 课程英文名:Docker Master ...
- 如何使用 Docker 快速配置数据科学开发环境?
如何使用 Docker 快速配置数据科学开发环境? 数据科学开发环境配置起来让人头疼,会碰到包版本不一致.错误信息不熟悉和编译时间漫长等问题.这很容易让人垂头丧气,也使得迈入数据科学的这第一步十分艰难 ...
- python在煤矿的用途-仁寿高校邦数据科学通识课【Python爬虫】答案
仁寿高校邦数据科学通识课[Python爬虫]答案it8p 仁寿高校邦数据科学通识课[Python爬虫]答案 关注公众号{帅搜}即可查询答案 支持:大学网课,智慧树,知到,超星,尔雅,学习通,选修课,公 ...
最新文章
- bash命令行常用快捷键
- 学习python用哪个app-Python和R:学哪个好?
- nodejs-安装/helloworld/npm
- Python基础教程(六):list、tuple、dictionary
- shell编程之数学运算
- 初识机器学习——吴恩达《Machine Learning》学习笔记(八)
- javaweb 学习资源
- shell生成随机文件名
- Springboot全局异常统一处理返回json
- 中国古代道家思想与网页重构的思考
- 刚刚!老干妈发布警方通报:3人伪造印章与腾讯签协议已刑拘,腾讯:辣椒酱不香了...
- 几种主流热修复方案分析
- dell笔记本电脑驱动_驱动到底是什么?别再用精灵管家无脑装驱动了
- PHP 控制器怎么调接口,mvc控制器的访问与参数解析和API接口获取数据
- 计算机教学说课稿,计算机教学说课稿
- hiar sdk for android,HiAR | HiAR SDK for Unity | 涂涂乐开发教程
- 谷歌:民主国家搜索引擎的消费监控
- IEEE软件工程标准词汇表定义需求
- Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
- 如何上传本地代码到github仓库
热门文章
- Linux网络防火墙:iptables与netfilter
- 关系型数据库(Relational Database)与非关系型数据库(NoSQL)的区别:(MySQL,Redis,Memcache,MongoDB)
- unicode编码表_6-字符编码-文件处理
- linux内核启动文件系统,Linux启动过程中文件系统的加载
- python3两个三阶矩阵相乘公式_Numpy 两个矩阵部分维度相乘,有没有很快的方法?...
- Navicat的快捷键
- java多元解析方程组
- qt 运动控制软件 界面_开源库分享----一款跨平台图形界面的百度网盘不限速客户端...
- 多重背包单调队列优化思路_多重背包问题
- php array 取值 没有key,PHP array_key_exists不起作用;数组不是多维的