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

資訊專欄INFORMATION COLUMN

Python數(shù)據(jù)分析

Shimmer / 1946人閱讀

摘要:從本博客開始,將系統(tǒng)的學(xué)習(xí)的數(shù)據(jù)分析的六大模塊,有關(guān)的基礎(chǔ)知識,可以看我的博客。專為進(jìn)行嚴(yán)格的數(shù)字處理而產(chǎn)生。在實(shí)現(xiàn)一個程序之前,值得檢查下所需的數(shù)據(jù)處理方式是否已經(jīng)在中存在了。積分六官網(wǎng)為了解決數(shù)據(jù)分析而創(chuàng)建的庫。

從本博客開始,將系統(tǒng)的學(xué)習(xí)Python的數(shù)據(jù)分析的六大模塊numpy、scipy、matplotlib、pandas、scikit-learn、keras,有關(guān)Python的基礎(chǔ)知識,可以看我的博客 http://digtime.cn/。
一、概念

python特點(diǎn):簡潔,開發(fā)效率高,運(yùn)算速度慢,膠水特性
主要有三點(diǎn):統(tǒng)計分析方法,提取有用的信息,研究、概括、總結(jié)。
數(shù)據(jù)分析六大模塊:numpy、scipy、matplotlib、pandas、scikit-learn、keras

numpy:數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)

scipy:強(qiáng)大的科學(xué)計算方法(矩陣分析、信號分析、數(shù)理分析...)

matplotlib:豐富的可視化套件

pandas:基礎(chǔ)數(shù)據(jù)分析套件

scikit-learn:強(qiáng)大的數(shù)據(jù)分析建模塊

keras:人工神經(jīng)網(wǎng)絡(luò)

二、Python環(huán)境安裝 1、Anaconda集成包環(huán)境安裝

要利用Python進(jìn)行科學(xué)計算,就需要一一安裝所需的模塊,而這些模塊可能又依賴于其它的軟件包或庫,因而安裝和使用起來相對麻煩。幸好有人專門在做這一類事情,將科學(xué)計算所需要的模塊都編譯好,然后打包以發(fā)行版的形式供用戶使用,Anaconda就是其中一個常用的科學(xué)計算發(fā)行版。

安裝完anaconda,就相當(dāng)于安裝了Python、IPython、集成開發(fā)環(huán)境Spyder、一些包等等。

對于Mac、Linux系統(tǒng),Anaconda安裝好后,實(shí)際上就是在主目錄下多了個文件夾(~/anaconda)而已,Windows會寫入注冊表。安裝時,安裝程序會把bin目錄加入PATH(Linux/Mac寫入~/.bashrc,Windows添加到系統(tǒng)變量PATH),這些操作也完全可以自己完成。以Linux/Mac為例,安裝完成后設(shè)置PATH的操作是

# 將anaconda的bin目錄加入PATH,根據(jù)版本不同,也可能是~/anaconda3/bin
echo "export PATH="~/anaconda2/bin:$PATH"" >> ~/.bashrc

# 更新bashrc以立即生效
source ~/.bashrc

MAC環(huán)境變量設(shè)置:

? export PATH=~/anaconda2/bin:$PATH
? conda -V
conda 4.3.30

配置好PATH后,可以通過 which condaconda --version 命令檢查是否正確。假如安裝的是Python 2.7對應(yīng)的版本,運(yùn)行python --versionpython -V 可以得到Python 2.7.12 :: Anaconda 4.1.1 (64-bit),也說明該發(fā)行版默認(rèn)的環(huán)境是Python 2.7。

在終端執(zhí)行 conda list可查看安裝了哪些包:

Conda的包管理就比較好理解了,這部分功能與pip類似。

2、設(shè)置編輯器環(huán)境和模板

我的編輯器使用的是 Pycharm,可以給其設(shè)置開發(fā)環(huán)境和模板,進(jìn)行快速開發(fā)。

Anaconda 設(shè)置:

固定模板設(shè)置:

# -*- coding:utf-8 -*-
"""
@author:Corwien
@file:${NAME}.py
@time:${DATE}${TIME}
"""
三、numpy

NumPy(Numeric Python)系統(tǒng)是Python的一種開源的數(shù)值計算擴(kuò)展。這種工具可用來存儲和處理大型矩陣,比Python自身的嵌套列表(nested list structure)結(jié)構(gòu)要高效的多(該結(jié)構(gòu)也可以用來表示矩陣(matrix))。據(jù)說NumPy將Python相當(dāng)于變成一種免費(fèi)的更強(qiáng)大的MatLab系統(tǒng)。

numpy特性:開源,數(shù)據(jù)計算擴(kuò)展,ndarray, 具有多維操作, 數(shù)矩陣數(shù)據(jù)類型、矢量處理,以及精密的運(yùn)算庫。專為進(jìn)行嚴(yán)格的數(shù)字處理而產(chǎn)生。

1、基本操作

小試牛刀:

# -*- coding:utf-8 -*-

"""
@author: Corwien
@file: numpyTest.py
@time: 17/11/5 01:32
"""

import numpy as np

def main():
    lst = [[1, 3, 5], [2, 4, 6]]
    print(type(lst))           # 

    np_lst = np.array(lst)
    print(type(np_lst))        # 

    # bool, int, int8, int16, int64 ..., uint8, float, float8
    np_list = np.array(lst, dtype = np.float)


    # 1 numpy property
    print(np_list.shape)       # pirnt: (2, 3)
    print(np_list.ndim)        # pirnt: 2
    print(np_list.dtype)       # pirnt: float64
    print(np_list.itemsize)    # pirnt: 8
    print(np_list.size)        # pirnt: 6

    # 2 some arrays
    print(np.zeros([2, 4]))   #
    print(np.ones([4, 3]))    #
    print("RandNum:")
    print(np.random.rand(2, 4))
    print("RandInt:")
    print(np.random.randint(1, 10, 3))
    print("Randn:")
    print(np.random.randn(2, 4))
    
    print("Distribute:")
    print(np.random.beta(1, 10, 100))

    # 3 Aarray Opers
    lst = np.arange(1, 11).reshape([2, -1])
    print("Exp")
    print(np.exp(lst))

    print(np.exp2(lst))
    print(np.sqrt(lst))
    print(np.sin(lst))
    print("Log")
    print(np.log(lst))

    lst1 = np.array([10, 20, 30, 40])
    lst2 = np.array([1, 2, 4, 5])
    print("Add")
    print(lst1 + lst2)   # [11 22 34 45]
    


if __name__ == "__main__":
    main()
2、矩陣操作與線性方程組
# -*- coding:utf-8 -*-

"""
@author: Corwien
@file: liner.py
@time: 17/11/6 00:17
"""

import numpy as np

# 4 liner
from numpy.linalg import *
print(np.eye(3))

lst = np.array([[1, 2],
                [3, 4]])

print("Inv: ")
print(inv(lst))
print("T: ")
print(lst.transpose())

print("Det:")
print(det(lst))
print(eig(lst))

y = np.array([[5.], [7.]])
print("Slove")
print(solve(list, y))
四、matplotlib

matplotlib 是用來繪圖表的,官網(wǎng) matplotlib.org

1、正弦和余弦
# -*- coding:utf-8 -*-

"""
@author: Corwien
@file: matplo.py
@time: 17/11/6 00:44
"""

import numpy as np

def main():
    #line
    import matplotlib.pyplot as plt
    x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
    c, s = np.cos(x), np.sin(x)  # 余弦和正弦
    plt.figure(1)
    plt.plot(x, c)
    plt.plot(x, s)
    plt.show()


if __name__ == "__main__":
    main()

具有屬性的圖:

# -*- coding:utf-8 -*-

"""
@author: Corwien
@file: matplo.py
@time: 17/11/6 00:44
"""

import numpy as np

def main():
    #line
    import matplotlib.pyplot as plt
    x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
    c, s = np.cos(x), np.sin(x)  # 余弦,正弦
    plt.figure(1)
    plt.plot(x, c, color="blue", linewidth=1.0, linestyle="-", label="COS", alpha=0.5)   # x 自變量, c 余弦
    plt.plot(x, s, "r*", label="SIN")
    plt.title("COS & SIN")
    ax=plt.gca()
    ax.spines["right"].set_color("none")
    ax.spines["top"].set_color("none")
    ax.spines["left"].set_position(("data", 0))
    ax.spines["bottom"].set_position(("data", 0))
    ax.xaxis.set_ticks_position("bottom")
    ax.yaxis.set_ticks_position("left")

    for label in ax.get_xticklabels()+ax.get_yticklabels():
        label.set_fontsize(10)
        label.set_bbox(dict(facecolor="white", edgecolor="None", alpha=0.2))

    plt.legend(loc="upper left")
    plt.grid()
    plt.axis([-1, 1, -0.5, 1])
    plt.fill_between(x, np.abs(x) < 0.5, c, c > 0.5, color="green",alpha=0.25)

    t = 1
    plt.plot([t, t], [0, np.cos(t)], "y", linewidth=3, linestyle="--")
    plt.annotate("cos(1)", xy=(t, np.cos(1)), xycoords="data", xytext=(+5, +10),
                 textcoords="offset points", arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.1"))
    plt.show()


if __name__ == "__main__":
    main()

五、scipy

scipy 是一個數(shù)值計算庫,官網(wǎng) https//www.scipy.org,

scipy包包含致力于科學(xué)計算中常見問題的各個工具箱。它的不同子模塊相應(yīng)于不同的應(yīng)用。像插值,積分,優(yōu)化,圖像處理,,特殊函數(shù)等等。

scipy可以與其它標(biāo)準(zhǔn)科學(xué)計算程序庫進(jìn)行比較,比如GSL(GNU C或C++科學(xué)計算庫),或者M(jìn)atlab工具箱。scipy是Python中科學(xué)計算程序的核心包;它用于有效地計算numpy矩陣,來讓numpy和scipy協(xié)同工作。

在實(shí)現(xiàn)一個程序之前,值得檢查下所需的數(shù)據(jù)處理方式是否已經(jīng)在scipy中存在了。作為非專業(yè)程序員,科學(xué)家總是喜歡重新發(fā)明造輪子,導(dǎo)致了充滿漏洞的,未經(jīng)優(yōu)化的,很難分享和維護(hù)的代碼。相反,Scipy程序經(jīng)過優(yōu)化和測試,因此應(yīng)該盡可能使用。

Integral

Optimize

Interpolation

Liner

Others

1.Integral 積分
# -*- coding:utf-8 -*-

"""
@author: Corwien
@file: sciTest.py
@time: 17/11/7 00:57
"""

import numpy as np

def main():
    #1--integral
    from scipy.integrate import quad, dblquad

    print(quad(lambda x:np.exp(-x), 0, np.inf))  # print: (1.0000000000000002, 5.842606742906004e-11)
    # print(dblquad(lambda  t, x:np.exp(-x*t)/t**3, np.inf.lambda x:1, lambda x:np.inf))



if __name__ == "__main__":
    main()
   
六、pandas

pandas官網(wǎng) 為了解決數(shù)據(jù)分析而創(chuàng)建的庫。

基本操作:

# -*- coding:utf-8 -*-

"""
@author: Corwien
@file: pandasTest.py
@time: 17/11/7 00:57
"""

import numpy as np
import pandas as pd

def main():
    #Data Structure
    s=pd.Series([i*2 for i in range(1, 11)])
    print(type(s))
    dates = pd.date_range("20171110", periods=8)
    df = pd.DataFrame(np.random.randn(8, 5), index = dates, columns=list("ABCDE"))
    print df
    

if __name__ == "__main__":
    main()
   

打印結(jié)果:


                   A         B         C         D         E
2017-11-10 -0.634174 -0.075550  1.029316  0.548124  1.556995
2017-11-11  1.060133 -0.392410 -0.007274 -0.555487  1.350169
2017-11-12  0.443465 -0.635941 -0.194218  0.195767 -0.732606
2017-11-13  0.760449 -0.526587  0.007155  0.554792 -1.230684
2017-11-14  1.624870 -0.304462  0.646139  0.187635  1.537512
2017-11-15 -1.312318  1.145372 -0.226041 -0.463330  0.446066
2017-11-16 -0.586573  0.803408 -1.565312  1.949908 -0.959705
2017-11-17  0.863814 -0.949896  1.880501 -0.032511 -0.116557

Process finished with exit code 0

相關(guān)文章:
Anaconda使用總結(jié)
Python 網(wǎng)頁爬蟲 & 文本處理 & 科學(xué)計算 & 機(jī)器學(xué)習(xí) & 數(shù)據(jù)挖掘兵器譜


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

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

相關(guān)文章

  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠(yuǎn)都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • 學(xué)習(xí)Python:做數(shù)據(jù)科學(xué)還是網(wǎng)站開發(fā)?

    摘要:屬于前一種,而且日益被用于數(shù)學(xué)計算機(jī)器學(xué)習(xí)和多種數(shù)據(jù)科學(xué)應(yīng)用。近來,由于擁有多個針對機(jī)器學(xué)習(xí)自然語言處理數(shù)據(jù)視覺化數(shù)據(jù)探索數(shù)據(jù)分析和數(shù)據(jù)挖掘的插件,豐富的數(shù)據(jù)科學(xué)生態(tài)體系得到了較大的發(fā)展,甚至有將數(shù)據(jù)科學(xué)社區(qū)化的趨勢。 譯者注:本文的英文原文地址是:Python for Data Science vs Python for Web Development,發(fā)布時間是10月29日。譯者一...

    neu 評論0 收藏0
  • 關(guān)于Python的三個謊言,別再盲目學(xué)Python

    摘要:關(guān)于的三個謊言,你一定要清楚。這是的整個知識體系圖譜,對于新手來說,沒必要學(xué)那么多。第四自動化測試一切關(guān)于自動化的東西,似乎都可以滿足,可以滿足大多數(shù)自動化工作,提升工作效率。這都是正常的,千萬別急著否定自己,懷疑自己。 ...

    TZLLOG 評論0 收藏0
  • 細(xì)數(shù)Python三十年技術(shù)演變史——萌發(fā)于小眾,崛起于AI

    摘要:作者宋天龍來源科技大本營導(dǎo)語一切都始于年的那個圣誕節(jié),的誕生并不算恰逢其時,它崛起充滿了機(jī)遇巧合,也有其必然性。年的圣誕節(jié),開始編寫語言的編譯器。年發(fā)布的標(biāo)志著的框架基本確定。年月發(fā)布了系列的最后一個版本,主版本號為。 showImg(https://segmentfault.com/img/remote/1460000019862276); 作者 | 宋天龍來源 | AI科技大本營 ...

    tuniutech 評論0 收藏0
  • Python與R、Matlab的對比

    摘要:我們來看一下美國相關(guān)專業(yè)人員對兩者的對比,只是粗略而不精準(zhǔn)的翻譯一下。小結(jié)其實(shí)在寫這篇文章之前,我就問過一下包括清華在內(nèi)的學(xué)校以及一些數(shù)學(xué)專業(yè)的學(xué)生,和還是占主流,但是經(jīng)過一番調(diào)查發(fā)現(xiàn)在美國在數(shù)據(jù)科學(xué)數(shù)學(xué)等方面好像漸成壓倒性的優(yōu)勢。 作為一枚程序員,想要研究Python編程語言與數(shù)學(xué)學(xué)習(xí)(教學(xué))的結(jié)合,就不能不了解以及比對一下其他數(shù)學(xué)學(xué)習(xí)與應(yīng)用的解決方案,比如R語言、Matlab等數(shù)學(xué)...

    yunhao 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.30 - 學(xué)習(xí) Python 來做一些神奇好玩的事情吧

    摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機(jī)制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...

    lifesimple 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<