ope体育手机端_opebet体育手机客户端
ope体育手机端

白灼虾,Jupyter或许并非抱负的Notebook,本兮

admin admin ⋅ 2019-03-28 11:38:09
白灼虾,Jupyter或许并非志向的Notebook,本兮 男人搞基羊驼狂欢节

选自blog.sicara.com

作者:Clment Walter

机器之心编译

参加:Nurhachu Null、张倩

Jupyter 是一款免费、开源的交互式 web 东西,在数据科学家中备受欢迎。但本文作者却对这一东西存在许多不满,以为其不是志向的 Notebook。

据报道,Jupyter notebook 是数据科学家首选的实战东西。本文展现了从 EDA(探索性数据剖析)到API 的快节奏,并没有Jupyter。

Jupyter的首要特点是:

与愈加质朴的 iPython 指令行比较,这种全体的灵活性让它成为了一款首选东西。可是,值得记住的是,这不过是一款 REPL(读取-求值-输出-循环)和姐姐在一起的日子,你能够在整个历史记录中有用地导航。因而,这并王新军和前妻唐静不是一款出产东西。

可是,许多机器学习开发者在出产中都阅历过把一个深度学习 notebook 重构成一个实践算法时深深的苦楚(reddit 和 Stack Overflow 上也有相似的评论)。

坚持精益出产的思维,咱们应该尽力削减糟蹋。

简介

在 Sicara,咱们为客户构建根据机器学习的产品。

首要,你必定需求一个版别操控东西,这对 Jupyter 来说是一种苦楚(在 Reddit 和 quora 上也有相关评论)。不仅仅是针对你的代码,还有你的试验。你需求有十足的掌握能够从头运转现在得到的一切成果。成果无法复现关于数据科学家来说多么常见?

广州增城气候

此外,运用 notebook 的人往往简单混杂下面三种用处:

为了削减糟蹋,应该明确地界说和别离这些过程,以便能够在改动一个过程的时分不会改动其他过程,反之亦然。我得到的定论是:胡凯钰

走运的是,一个装备妥当的IDE能够完结一切的作业。例如,假如你来自于R社区的话,你必定会运用RStudio,它答应你进行这些作业阵营转化待定:

开发出出产安排妥当的代码

只需你想做一个试验,也便是说,写一个能够在你的数据上有所作为的办法,你就应该考虑一下用法、极限事例等等。在一个独自的文件、文档和单元测验中来做。这样能够保证:

由于你有必要安排你的东西,所以这高密柳建明会让你考虑流程的结构、你所需求的东西、你最或许改动的东西等等。Pyth白灼虾,Jupyter或许并非志向的Notebook,本兮on 和 R 都支撑这种快速测验。最好花十分钟时刻写一下那些需求十小时调试过错输出的极限事例。

为了清楚起见,单元测验绝不能与界说办法的文件存在于同一个文件夹中。可是运用Jupyt古手羽zer 的话,这点就无法避免了。

调试和显现

在这一步,你有了全新的功用代码。是时分在实践的数据上试一试了!这是notebook十分便利的地点了,因其存在单元格机制(cell mechanism)。但这显然是一次东西切换。你为什么要抛弃具有一切快捷键和舒适度的IED,去在web浏览器上运转代码呢?你所需求的是将你的代码直接在 IDE 中行内执tarjiman行( inline execution)。

像pycharm这样的东西就有对这个功用的原生支撑:运用一个键盘快捷键就能够履行选定的代码或脚本(在操控台中挑选履行或许履行块)。此外,它的操控台中运转着iPython,还具有很好的变量东西窗口。在科学形式下,你还能够在IDE中显现和改动图画、数据/数组。或许你还能够运用像VSCode或许Atom with Hydrogen这些具有这种功用的东西。

陈述和共享

这儿你应该现已在项目途径下有了测验代码,并在数据上运转一个纯Python文件。

|-- project

|-- notebooks

|-- data_analysis.py

|-- tests

|-- do_so王丽坤老公及二个儿子mething_test.py

|-- utils

|-- do_s黄沐尔omething.py

你现已将代码在你的IDE中内联地运转了并查看了成果,十分棒!你的作业根本现已完结了:现在需求向团队做陈述了,以证明将你的算法移植到新的版别中的合理性,或许或许你将要写一篇论文投稿到下一届的NeurIPS会议上。

你需求解说你的逻辑,并逐渐证明你的成果。当然你不想在另一个文件中从头输入一切的内容,这太无聊了。

这便是存在用于文学式编程(lit洪善花erate programming)的东西的原因了。像Sphinx这类文档东西便是xcafe以这种思路构建的:将你的代码和文档写进同一个文件中,并从中生成一个可读版别。

关于你的 Python notebook,我主张你运用 Pweave。这是我发现的现在为止最好用的 knitr 转移包。也是一个彻底支撑 Python cell(或许Python和R的混合)的Rmarkdown白灼虾,Jupyter或许并非志向的Notebook,本兮。

在任何情况下,我发现运用 Pweave 的 pypublish 指令是最有用白灼虾,Jupyter或许并非志向的Notebook,本兮的。仅仅需求在你的脚本上写下注释并运转:

pypublish data_analysis.py

从中生成一个明晰的可共享HTML。每一个注释行都是markdown解说的,每个cell(或许代码白灼虾,Jupyter或许并非志向的Notebook,本兮块)都能够被显现或许被躲藏。

例如,用这个notebook运转 pypublish(留意特别的注释符号#'、#+以及# %%)。

# %% # Th深vis is the title of the notebook

#+ setup, echo=False

importpandas aspd

df = pd.DataFrame({ 'a': list(range( 4))})

#' Let us see what a plot 白灼虾,Jupyter或许并非志向的Notebook,本兮loo荷里活性女大全ks like

#+ plot_df, echo=False

df.plot.bar()

#' Let us make now some visible computation

#+ echo=True

a = 1

print(a)

#' Also it is pos白灼虾,Jupyter或许并非志向的Notebook,本兮sible to use variable in context: a is <% 聊城东阿气候a %>

#+ echo=True

a = 2

#' a is now <% a %>

生成如下陈述:

我推荐在PyCharm中设置一个外部东西来一键发布notebook,装备如下(如有必要,请留意增加环境变量的技巧):

Pweave作为外部东西装备

定论

这不是另一篇《为啥Jupyter notebook糟糕极了》(Why Jupyter notebooks suck )的文章。我对这个盛行东西并无任何个人成见,仅仅期望共享一些我在运用过程中的个人体会。尤其是身处一个出产驱动的环境中,我现已进入了另一个作业流程。你怎么看呢?

原文链接:https://bl摸奶头og.sicara.com/jupyter-notebook-analysis-production-b2d585204520

本文为机器之心编译,转载请联络本大众号取得授权。

line 数据剖析 开发
声明:该文观念仅代表作者自己,搜狐号系信息发布渠道,搜狐仅供给信息存储空间效劳。 项今羽

相关新闻

admin

admin

TA太懒了...暂时没有任何简介

精彩新闻