首页 - 新闻世界 - 失落叶,蔡慧敏,兰州-头条斑鱼,渔业咨询,捕捞技巧

失落叶,蔡慧敏,兰州-头条斑鱼,渔业咨询,捕捞技巧

发布时间:2019-05-21  分类:新闻世界  作者:admin  浏览:225



 / SegmentFault

Jupyter

首要,榜首神器是Jupyter。假如你是榜首次运用,或许搞不清楚它的开发者做这么个鬼东西出来干什么,说它是博客体系也不像,说它是web服务器也不像,但它便是有用。

由于咱们传统的web开发首要想的便是面向大众,你做一个服务器便是要服务不计其数浏览器的。

当然Jupyter也能够服务许多浏览器,但它更多的仍是便利研讨人员,对研讨人员来说几乎是太便利了,你把代码像写文章相同直接写在输入框里,然后在本页面直接就看到了这个代码的成果,随时修正,随时展示,文码混排,是Markdown的一个增强版,究竟Markdown还只能显现文字,最多再加上一些图片,而Jupyter是能够直接运转Python代码的。

当然,也有些人企图在Jupyter里运转PHP或Java代码,但明显成不了气候。由于Python这个言语天然生成便是脚本言语,或许将来仅有有期望往里移植的便是Javascript,这货也是一个脚本言语。脚本言语的长处便是不必编译,一行一个成果。

纵观核算机言语开展前史,便是一个从繁到简的进程,C言语需求编译+链接才干运转,Java只需javac一下,把编译和链接合二为一,PHP更简略,直接运转就行了,连编译都省了。

可是还不够直接,由于还要编写一个.php文件存盘,然后才干运转,到了Python以及其它脚本言语这儿,能够直接在壳里运转,但最大的问题是运转能够运转,无法保存,要保存就又要跟传统方法相同,找个编辑器来,或许vi,存成文件今后才干够运转。

Jupyter最大的长处便是:它本身仍是一个外壳环境,能够运转脚本,但一起也帮你主动把这些脚本代码保存了下来,不光保存脚本代码,而且你插在脚本代码傍边的一切注释不是一般注释,而是各种格式化的Markdown都同时帮你保存下来,而且能够随时修正。

所以它兼具了脚本外壳和文件办理体系的长处,从此你开发Python代码再也不必先在IDE里写好代码,然后再到终端里去运转,而直接在一个web页面上就悉数搞定了。

Java有这样的东西吗?PHP有这样的东西吗?没有,所以咱们有必要挑选Python。

Pandas

第二神器是Pandas。假如我让你读取一个csv文件,然后求每一列数据的均匀值,最大值,最小值,方差,用Java或PHP怎么做?

你首要要fopen一个文件,然后一行一行读进来,再给它整个数据结构,然后弄个循环核算,终究你或许还要fclose这个文件。

总归代码一坨,费事死。而Python言语由于有Pandas这个神器,一行代码搞定:

df = pd.read_csv( a.csv )

行了,从此今后,df便是这个DataFrame,它本身便是一个强壮的数据结构,也能够把它了解成mysql数据库中的一张表吧,各种增修改查,求总和,求均匀都是一行代码的工作。

所以有这样强壮的库,研讨人员有什么理由挑选Java?

scikit-learn

第三神器scikit-learn,一般缩写为sclearn,各种机器学习算法,基本上只需你能想得到的,线性回归,逻辑回归,SVM,随机森林,最近街坊等等等等,各种算法悉数在这儿面(http://scikit-learn.org/stable/user_guide.html)。

简而言之,只要你想不到,没有它做不到。

所以这便是为什么玩机器学习必选Python的原因,你给我找一个Java或许PHP有这样多种算法的库来?

matplotlib

第四神器是matplotlib。假如我让你依据上面csv文件里的信息,画一个图,用Java该怎么做?

你当然会去找第三方插件库,然后又是一通折腾,总算把图做出来,然后编译,然后运转。

假如我要改配色呢?假如我要求画地图呢?假如要画热力求呢?那个费事就不是一星半点,而关于matplotlib来说,几乎便是小菜一碟。

简略的直方图就不说了,下面要点介绍如何用matplotlib合作Basemap画一个我国地图。

装置Basemap

先装置相应的组件。我假定你现已都装置好了Python以及Jupyter等等。假如没有装置的话,就去测验一下brew install python3和brew install jupyter吧,网上有许多教程。

然后你需求用pip3 install许多咱们下面或许需求用到的库。可是由于咱们要用一个叫做Basemap的库,而这个库没有办法用简略的pip3 install装置,所以稍多两个过程:

brew install geos
pip3 install https://github.com/matplotlib/basemap/archive/v1.1.0.tar.gz

开端画图

发动Jupyter之后,咱们仍是本着从最简略的代码开端。先画一个国际地图:

import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

plt.figure(figsize=(16,8))
m = Basemap()
m.drawcoastlines()

plt.show()

前面两行引进相应的库,真实的代码就4行,够简略吧。第1行乃至能够不写,它界说了图的巨细。第2行咱们创立一个地图,第3行把海岸线画上,第4行显现这个地图,便是这样:

你用Java的4行代码画一个地图出来?

然后咱们开端画上国家,又是1行代码:

m.drawcountries(linewidth=1.5)

就变成了这样:

用Java或许吗?用PHP或许吗?

假如咱们想显现我国地图,只需求在创立Basemap时指定一下经纬度就行了:

m = Basemap(llcrnrlon=73, llcrnrlat=18, urcrnrlon=135, urcrnrlat=53)

然后就得到了我国地图:

看上去有点变形,这是由于咱们没有增加任何投影的原因,Basemap供给24种不同的投影方法,你能够自己一个个试一下,比较常用的是兰勃特投影,咱们增加一下:

m = Basemap(llcrnrlon=77, llcrnrlat=14, urcrnrlon=140, urcrnrlat=51, projection= lcc , lat_1=33, lat_2=45, lon_0=100)

这次总算看上去比较正常了:

咱们想加上省的鸿沟怎么办呢?Basemap缺省的包里没有我国的省区,只要美国的州,究竟是美国人做的嘛。

不过好在国际很大,有专门的国际组织干这事,在这儿(https://gadm.org/download_country_v3.html)你能够下载全国际任何一个国家的行政区划Shape文件,然后咱们给它加上:

m.readshapefile( CHN_adm_shp/CHN_adm1 , states , drawbounds=True)

然后就得到了下图:


再往后,你还能够往图上改色彩啦,写数字啦,这些就留下你研讨吧。总归,我想说的是,用Python画地图真的超简单。

终究再为Java和PHP美言几句:我们分工不同,Java和PHP尽管做这样的数字研讨不是很便利,但仍是十分合适web开发的,而Python在这方面并不合适。

所以一般的做法是:首要用Python验证算法,通过一系列杂乱的核算,把算法确认下来之后,当要应用到web上的时分,再用Java或许PHP把终究构成的定论重写一遍,这样就能充分利用各种言语的优势。

弥补:basemap这个第三方库或许不太好装置,Windows下能够在  https://sourceforge.net/projects/matplotlib/files/matplotlib-toolkits/basemap-1.0.7/  下载EXE文件装置。

本文转载自「SegmentFault」,作者张京,点击「原文链接」即可重视

引荐阅览

高效 MacBook 工作环境装备,超有用!

GitHub超越30000星,Python算法新手入门大全

在腾讯的八年,我的工作考虑

不就写个 Hello World 嘛,至于做这么炫吗?

喜爱就点击“在看”吧!
下一篇
快捷导航
最新发布
标签列表