成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python數(shù)據(jù)分析實(shí)用程序

mozillazg / 1410人閱讀

摘要:機(jī)器學(xué)習(xí)由于數(shù)據(jù)量較大,技術(shù)已成為必要。以下腳本演示了世界銀行數(shù)據(jù)的線性回歸實(shí)用程序和緩存下載程序省略了水印和繪圖標(biāo)簽的代碼代碼應(yīng)顯示以下圖像該計(jì)劃下載年世界銀行數(shù)據(jù),并將嬰兒死亡率與人均進(jìn)行對(duì)比。

來(lái)源 | 愿碼(ChainDesk.CN)內(nèi)容編輯

愿碼Slogan | 連接每個(gè)程序員的故事

網(wǎng)站 | http://chaindesk.cn

愿碼愿景 | 打造全學(xué)科IT系統(tǒng)免費(fèi)課程,助力小白用戶、初級(jí)工程師0成本免費(fèi)系統(tǒng)學(xué)習(xí)、低成本進(jìn)階,幫助BAT一線資深工程師成長(zhǎng)并利用自身優(yōu)勢(shì)創(chuàng)造睡后收入。

官方公眾號(hào) | 愿碼 | 愿碼服務(wù)號(hào) | 區(qū)塊鏈部落

免費(fèi)加入愿碼全思維工程師社群 | 任一公眾號(hào)回復(fù)“愿碼”兩個(gè)字獲取入群二維碼


本文閱讀時(shí)長(zhǎng):13min

本文包含以下部分:

數(shù)據(jù)分析,數(shù)據(jù)科學(xué),大數(shù)據(jù)

Python的數(shù)據(jù)分析簡(jiǎn)史

dautil的高級(jí)概述

IPython筆記本實(shí)用程序

下載數(shù)據(jù)

繪制實(shí)用程序

揭開(kāi)Docker的神秘面紗

數(shù)據(jù)分析,數(shù)據(jù)科學(xué),大數(shù)據(jù)

您可能已經(jīng)看到維恩圖將數(shù)據(jù)科學(xué)描述為數(shù)學(xué)/統(tǒng)計(jì)學(xué),計(jì)算機(jī)科學(xué)和領(lǐng)域?qū)I(yè)知識(shí)的交集。數(shù)據(jù)分析是永恒的,并且在數(shù)據(jù)科學(xué)和計(jì)算機(jī)科學(xué)之前存在。您可以使用筆和紙進(jìn)行數(shù)據(jù)分析,并在更現(xiàn)代的時(shí)候使用袖珍計(jì)算器進(jìn)行數(shù)據(jù)分析。

數(shù)據(jù)分析涉及許多方面,例如做出決策或提出新的假設(shè)和問(wèn)題。圍繞數(shù)據(jù)科學(xué)和大數(shù)據(jù)的炒作,狀態(tài)和經(jīng)濟(jì)回報(bào)讓我想起了數(shù)據(jù)倉(cāng)庫(kù)和商業(yè)智能成為流行語(yǔ)的時(shí)間。商業(yè)智能和數(shù)據(jù)倉(cāng)庫(kù)的最終目標(biāo)是構(gòu)建管理儀表板。這涉及很多政治和組織方面,但在技術(shù)方面,主要是關(guān)于數(shù)據(jù)庫(kù)。另一方面,數(shù)據(jù)科學(xué)不是以數(shù)據(jù)庫(kù)為中心的,而是在很大程度上依賴于機(jī)器學(xué)習(xí)。機(jī)器學(xué)習(xí)由于數(shù)據(jù)量較大,技術(shù)已成為必要。數(shù)據(jù)增長(zhǎng)是由世界人口的增長(zhǎng)和社交媒體和移動(dòng)設(shè)備等新技術(shù)的興起引起的。實(shí)際上,數(shù)據(jù)增長(zhǎng)可能是我們可以確定的唯一趨勢(shì)。構(gòu)建儀表板和應(yīng)用機(jī)器學(xué)習(xí)之間的區(qū)別與搜索引擎的演變方式類似。

搜索引擎最初只不過(guò)是手工創(chuàng)建的組織良好的鏈接集合。最終,自動(dòng)化方法獲勝。由于將及時(shí)創(chuàng)建更多數(shù)據(jù)(而不是銷毀),我們可以預(yù)期自動(dòng)數(shù)據(jù)分析會(huì)增加。

Python的數(shù)據(jù)分析簡(jiǎn)史

1989年:Guido van Rossum在荷蘭的CWI實(shí)施了第一個(gè)Python版本,作為圣誕節(jié)愛(ài)好項(xiàng)目。

1995年:Jim Hugunin創(chuàng)建了NumPy的前身Numeric。

1999年:Pearu Peterson將f2py描述為Fortran和Python之間的橋梁。

2000:Python 2.0發(fā)布。

2001:SciPy庫(kù)發(fā)布。此外,還創(chuàng)建了Numarray,一個(gè)競(jìng)爭(zhēng)的數(shù)字庫(kù)。費(fèi)爾南多佩雷斯發(fā)布了IPython,這是一個(gè)下午的黑客攻擊。NLTK作為一個(gè)研究項(xiàng)目發(fā)布。

2002年:John Hunter創(chuàng)建了matplotlib庫(kù)。

2005年:NumPy由Travis Oliphant發(fā)布。最初,NumPy是Numeric擴(kuò)展,其功能受到Numarray的啟發(fā)。

2006:NumPy 1.0發(fā)布。SQLAlchemy的第一個(gè)版本發(fā)布了。

2007年:scikit-learn項(xiàng)目由David Cournapeau發(fā)起為Google Summer of Code項(xiàng)目。Cython是從Pyrex分叉的。Cython后來(lái)被大量用于熊貓和scikit-學(xué)習(xí)以提高性能。

2008年:Wes McKinney開(kāi)始研究Pandas。Python 3.0發(fā)布了。

2011:IPython 0.12版本引入了IPython筆記本。Packt發(fā)布了NumPy 1.5初學(xué)者指南。

2012年:Packt發(fā)布了NumPy Cookbook。

2013:Packt發(fā)布NumPy初學(xué)者指南 - 第二版。

2014年:Fernando Perez宣布Project Jupyter,旨在打造一款與語(yǔ)言無(wú)關(guān)的筆記本電腦。Packt發(fā)布了學(xué)習(xí)NumPy數(shù)組和Python數(shù)據(jù)分析。

2015:Packt發(fā)布NumPy初學(xué)者指南 - 第三版和NumPy Cookbook - 第二版。

dautil的高級(jí)概述

dautil模塊總結(jié)在下表中:

描述 LOC
dautil.collect 包含與集合相關(guān)的實(shí)用程序 331
dautil.conf 包含配置實(shí)用程序 48
dautil.data 包含用于下載和加載數(shù)據(jù)的實(shí)用程序 468
dautil.db 包含與數(shù)據(jù)庫(kù)相關(guān)的實(shí)用程序 98
dautil.log_api 包含日志實(shí)用程序 204
dautil.nb 包含IPython / Jupyter筆記本小部件和實(shí)用程序 609
dautil.options 配置與數(shù)據(jù)分析相關(guān)的多個(gè)庫(kù)的動(dòng)態(tài)選項(xiàng) 71
dautil.perf 包含與性能相關(guān)的實(shí)用程序 162
dautil.plotting 包含繪圖實(shí)用程序 382
dautil.report 包含報(bào)告實(shí)用程序 232
dautil.stats 包含統(tǒng)計(jì)函數(shù)和實(shí)用程序 366
dautil.ts 包含時(shí)間序列和日期的實(shí)用程序 217
dautil.web 包含用于Web挖掘和HTML處理的實(shí)用程序 47
IPython筆記本實(shí)用程序

IPython筆記本已成為數(shù)據(jù)分析的標(biāo)準(zhǔn)工具。該dautil.nb有幾個(gè)互動(dòng)IPython的小部件,以幫助乳膠渲染,matplotlib屬性的設(shè)置,和繪圖。Ivan定義了一個(gè)Context類,它表示小部件的配置設(shè)置。這些設(shè)置存儲(chǔ)在當(dāng)前工作目錄中名為dautil.json的漂亮打印的JSON文件中。這可以擴(kuò)展,甚至可以使用數(shù)據(jù)庫(kù)后端。以下是一個(gè)示例dautil.json的編輯摘錄(因此它不占用大量空間):

{

   ...

   "calculating_moments": {

       "figure.figsize": [ 10.4, 7.7 ],

       "font.size": 11.2

   },

   "calculating_moments.latex": [ 1, 2, 3, 4, 5, 6, 7 ],

   "launching_futures": {

       "figure.figsize": [ 11.5, 8.5 ]

   },

   "launching_futures.labels": [ [ {}, {

               "legend": "loc=best",

               "title": "Distribution of Means"

           }

       ],

       [

           {

               "legend": "loc=best",

               "title": "Distribution of Standard Deviation"

           },

           {

                "legend": "loc=best",

               "title": "Distribution of Skewness"

           }

       ]

   ],

...

}

?Context對(duì)象可以使用字符串構(gòu)建 - Ivan建議使用筆記本的名稱,但任何唯一標(biāo)識(shí)符都可以。該dautil.nb.LatexRenderer還使用了Context類。它是一個(gè)實(shí)用程序類,可幫助您在IPython / Jupyter筆記本中編號(hào)和渲染Latex方程式,例如,如下所示:

import dautil as dl

 

lr = dl.nb.LatexRenderer(chapter=12, context=context)

lr.render(r"delta! = x - m")

lr.render(r"m" = m + frac{delta}{n}")

lr.render(r"M_2" = M_2 + delta^2 frac{ n-1}{n}")

lr.render(r"M_3" = M_3 + delta^3 frac{ (n - 1) (n - 2)}{n^2}/

- frac{3delta M_2}{n}")

lr.render(r"M_4" = M_4 + frac{delta^4 (n - 1) /

(n^2 - 3n + 3)}{n^3} + frac{6delta^2 M_2}/

{n^2} - frac{4delta M_3}{n}")

lr.render(r"g_1 = frac{sqrt{n} M_3}{M_2^{3/2}}")

lr.render(r"g_2 = frac{n M_4}{M_2^2}-3.")

結(jié)果如下:

您可能會(huì)發(fā)現(xiàn)有用的另一個(gè)小部件是RcWidget,它設(shè)置matplotlib設(shè)置,如以下屏幕截圖所示:

下載數(shù)據(jù)

有時(shí),我們需要樣本數(shù)據(jù)來(lái)測(cè)試算法或原型可視化。在dautil.data模塊中,您將找到許多用于數(shù)據(jù)檢索的實(shí)用程序。模塊中的一些實(shí)用程序在現(xiàn)有的pandas函數(shù)之上添加了一個(gè)緩存層,例如從世界銀行和Yahoo!下載數(shù)據(jù)的pandas函數(shù)。您還可以獲取音頻,人口統(tǒng)計(jì),F(xiàn)acebook和營(yíng)銷數(shù)據(jù)。

數(shù)據(jù)存儲(chǔ)在特殊數(shù)據(jù)目錄下,該目錄取決于操作系統(tǒng)。以下示例代碼從SPAN Facebook數(shù)據(jù)集加載數(shù)據(jù)并計(jì)算clique數(shù):

import networkx as nx

import dautil as dl

 

 

fb_file = dl.data.SPANFB().load()

G = nx.read_edgelist(fb_file,

                     create_using=nx.Graph(),

                     nodetype=int)

 

print("Graph Clique Number",

     nx.graph_clique_number(G.subgraph(list(range(2048)))))
繪制實(shí)用程序

Ivan在書中經(jīng)??梢暬瘮?shù)據(jù)。繪圖有助于我們了解數(shù)據(jù)的結(jié)構(gòu),并幫助您形成假設(shè)或研究問(wèn)題。通常,我們想要繪制多個(gè)變量,但我們希望很容易看出它是什么。matplotlib中的標(biāo)準(zhǔn)解決方案是循環(huán)顏色。但是,Ivan更喜歡循環(huán)線寬和線條樣式。以下單元測(cè)試演示了他對(duì)此問(wèn)題的解決方案:

 def test_cycle_plotter_plot(self):

       m_ax = Mock()

       cp = plotting.CyclePlotter(m_ax)

       cp.plot([0], [0])

       m_ax.plot.assert_called_with([0], [0], "-", lw=1)

       cp.plot([0], [1])

       m_ax.plot.assert_called_with([0], [1], "--", lw=2)

       cp.plot([1], [0])

       m_ax.plot.assert_called_with([1], [0], "-.", lw=1)

該dautil.plotting模塊目前也有次要情節(jié),直方圖,回歸圖使用的輔助工具,并處理彩色地圖。下面的示例代碼(標(biāo)簽的代碼已被省略)演示了條形圖實(shí)用程序功能和dautil.data的實(shí)用程序功能,它下載了股票價(jià)格數(shù)據(jù):

import dautil as dl

import numpy as np

import matplotlib.pyplot as plt

 

 

ratios = []

STOCKS = ["AAPL", "INTC", "MSFT", "KO", "DIS", "MCD", "NKE", "IBM"]

 

for symbol in STOCKS:

   ohlc = dl.data.OHLC()

   P = ohlc.get(symbol)["Adj Close"].values

   N = len(P)

   mu = (np.log(P[-1]) - np.log(P[0]))/N

   var_a = 0

   var_b = 0

 

   for k in range(1, N):

       var_a = (np.log(P[k]) - np.log(P[k - 1]) - mu) ** 2

       var_a = var_a / N

 

   for k in range(1, N//2):

       var_b = (np.log(P[2 * k]) - np.log(P[2 * k - 2]) - 2 * mu) ** 2

       var_b = var_b / N

 

   ratios.append(var_b/var_a - 1)

 

_, ax = plt.subplots()

dl.plotting.bar(ax, STOCKS, ratios)

plt.show()

有關(guān)最終結(jié)果,請(qǐng)參閱以下屏幕截圖:

代碼執(zhí)行隨機(jī)游走測(cè)試并計(jì)算股票價(jià)格列表的相應(yīng)比率。每當(dāng)您運(yùn)行代碼時(shí)都會(huì)檢索數(shù)據(jù),因此您可能會(huì)得到不同的結(jié)果。

以下腳本演示了世界銀行數(shù)據(jù)的線性回歸實(shí)用程序和緩存下載程序(省略了水印和繪圖標(biāo)簽的代碼):

import dautil as dl

import matplotlib.pyplot as plt

import numpy as np

 

 

wb = dl.data.Worldbank()

countries = wb.get_countries()[["name", "iso2c"]]

inf_mort = wb.get_name("inf_mort")

gdp_pcap = wb.get_name("gdp_pcap")

df = wb.download(country=countries["iso2c"],

                 indicator=[inf_mort, gdp_pcap],

                start=2010, end=2010).dropna()

loglog = df.applymap(np.log10)

x = loglog[gdp_pcap]

y = loglog[inf_mort]

 

dl.options.mimic_seaborn()

fig, [ax, ax2] = plt.subplots(2, 1)

ax.set_ylim([0, 200])

ax.scatter(df[gdp_pcap], df[inf_mort])

ax2.scatter(x, y)

dl.plotting.plot_polyfit(ax2, x, y)

plt.show()

?代碼應(yīng)顯示以下圖像:

該計(jì)劃下載2010年世界銀行數(shù)據(jù),并將嬰兒死亡率與人均GDP進(jìn)行對(duì)比。還示出了對(duì)數(shù)變換數(shù)據(jù)的線性擬合。

揭開(kāi)Docker的神秘面紗

Docker使用Linux內(nèi)核功能來(lái)提供額外的虛擬化層。它由Solomon Hykes于2013年創(chuàng)建。Boot2Docker允許我們?cè)赪indows和Mac OS X上安裝Docker。Boot2Docker使用包含帶有Docker?的Linux環(huán)境的VirtualBox VM?。介紹中提到的Ivan的Docker鏡像基于continuumio / miniconda3?Docker鏡像。

安裝Boot2Docker后,需要對(duì)其進(jìn)行初始化。這只需要一次,Linux用戶不需要這一步:$ boot2docker init

Mac OS X和Windows用戶的下一步是啟動(dòng)VM:

$ boot2docker start

通過(guò)啟動(dòng)示例容器來(lái)檢查Docker環(huán)境:

$ docker run hello-world

Docker鏡像組織在一個(gè)類似于GitHub的存儲(chǔ)庫(kù)中。制作人推送圖像,消費(fèi)者拉動(dòng)圖像。您可以使用以下命令拉出Ivan的存儲(chǔ)庫(kù)。目前的大小為387 MB。

$ docker pull ivanidris/pydacbk

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43784.html

相關(guān)文章

  • 經(jīng)驗(yàn)拾憶(純手工)=> Linux實(shí)用工具命令

    摘要:為啥直接不行呢因?yàn)橐蚤_(kāi)頭的最后一條命令是。和和和強(qiáng)制終止最常用的,先提出來(lái)。。。。我們可以通過(guò)這一條命令來(lái)迅速回到程序運(yùn)行的環(huán)境。其實(shí)這些配置文件以及這些命令和用戶以及權(quán)限等都是有很大關(guān)系的。 Ubuntu16升級(jí)到18.04 有特殊新穎強(qiáng)迫癥癖好可以升下,如果你覺(jué)得16.04好用,就根本沒(méi)必要升了 我當(dāng)時(shí)租的 云服務(wù)器通常都是16.04,現(xiàn)在估計(jì)也是16.04較多 我是個(gè)...

    kk_miles 評(píng)論0 收藏0
  • python 實(shí)用程序 | PDF 轉(zhuǎn) Word

    摘要:雖然現(xiàn)在市面上有很多轉(zhuǎn)軟件,比如,但大多數(shù)的軟件是要收費(fèi)的,并且價(jià)格不菲。于是乎我就想到了利用來(lái)寫個(gè)程序,把轉(zhuǎn)成文檔。具體的程序邏輯,可以去查看原文。本文首發(fā)于公眾號(hào)癡海,每天分享干貨,后臺(tái)回復(fù),領(lǐng)取最新教程。 showImg(https://segmentfault.com/img/remote/1460000015686184); 閱讀文本大概需要 6 分鐘。 現(xiàn)在網(wǎng)上有很多文檔是...

    sorra 評(píng)論0 收藏0
  • Python線程專題9:線程終止與掛起、實(shí)用工具函數(shù)

    摘要:上一篇文章線程專題使用鎖的注意事項(xiàng)下一篇文章線程專題多線程按順序執(zhí)行線程沒(méi)有任何方法可用于強(qiáng)制終止或掛起。實(shí)用工具函數(shù)函數(shù)名解釋返回當(dāng)前活動(dòng)的對(duì)象數(shù)量。 上一篇文章:Python線程專題8:使用鎖的注意事項(xiàng)下一篇文章:Python線程專題10:queue、多線程按順序執(zhí)行 線程沒(méi)有任何方法可用于強(qiáng)制終止或掛起。這是設(shè)計(jì)上的原因,因?yàn)榫帉懢€程程序本身十分復(fù)雜。例如:如果某個(gè)線程已經(jīng)獲取...

    dunizb 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<