1. 程式人生 > 資料庫 >jdbc預編譯物件,事務,資料庫連線池

jdbc預編譯物件,事務,資料庫連線池

Numpy: 基礎的數學計算模組,以矩陣為主,純數學。

SciPy: 基於Numpy,提供方法(函式庫)直接計算結果,封裝了一些高階抽象和物理模型。比方說做個傅立葉變換,這是純數學的,用Numpy;做個濾波器,這屬於訊號處理模型了,在Scipy裡找。

Pandas: 提供了一套名為DataFrame的資料結構,適合統計分析中的表結構,在上層做資料分析。

Numpy:

來儲存和處理大型矩陣,比Python自身的巢狀列表(nested list structure)結構要高效的多,本身是由C語言開發。這個是很基礎的擴充套件,其餘的擴充套件都是以此為基礎。資料結構為ndarray,一般有三種方式來建立。

Pandas:

基於NumPy 的一種工具,該工具是為了解決資料分析任務而建立的。Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。最具有統計意味的工具包,某些方面優於R軟體。資料結構有一維的Series,二維的DataFrame(類似於Excel或者SQL中的表,如果深入學習,會發現Pandas和SQL相似的地方很多,例如merge函式),三維的Panel(Pan(el) + da(ta) + s,知道名字的由來了吧)。

1.彙總和計算描述統計,處理缺失資料 ,層次化索引
2.清理、轉換、合併、重塑、GroupBy技術
3.日期和時間資料型別及工具(日期處理方便地飛起)

Matplotlib:

Python中最著名的繪圖系統,很多其他的繪圖例如seaborn(針對pandas繪圖而來)也是由其封裝而成。
繪製的圖形可以大致按照ggplot的顏色顯示,但是還是感覺很雞肋。但是matplotlib的複雜給其帶來了很強的定製性。其具有面向物件的方式及Pyplot的經典高層封裝。

需要掌握的是:
1.散點圖,折線圖,條形圖,直方圖,餅狀圖,箱形圖的繪製。
2.繪圖的三大系統:pyplot,pylab(不推薦),面向物件
3.座標軸的調整,新增文字註釋,區域填充,及特殊圖形patches的使用
4.金融的同學注意的是:可以直接呼叫Yahoo財經資料繪圖

Scipy:

方便、易於使用、專為科學和工程設計的Python工具包.它包括統計,優化,整合,線性代數模組,傅立葉變換,訊號和影象處理,常微分方程求解器等等。基本可以代替Matlab,但是使用的話和資料處理的關係不大,數學系,或者工程系相對用的多一些。
近期發現有個statsmodel可以補充scipy.stats,時間序列支援完美。

一。 陣列要比列表效率高很多
    numpy高效的處理資料,提供陣列的支援,python預設沒有陣列。pandas、scipy、matplotlib都依賴numpy。
    pandas主要用於資料探勘,探索,分析
    matplotlib用於作圖,視覺化
    scipy進行數值計算,如:積分,傅立葉變換,微積分
    statsmodels用於統計分析
    Gensim用於文字挖掘
    sklearn機器學習, keras深度學習
二。
    numpy和mkl 下載安裝
    pandas和maiplotlib網路安裝
    scipy 下載安裝
    statsmodels和Gensim網路安裝
三numpy的操作。
    import numpy
    # 建立數一維陣列組
    # numpy.array([元素1,元素2,......元素n])
    x = numpy.array(['a', '9', '8', '1'])
    # 建立二維陣列格式
    # numpy.array([[元素1,元素2,......元素n],[元素1,元素2,......元素n],[元素1,元素2,......元素n]])
    y = numpy.array([[3,5,7],[9,2,6],[5,3,0]])
    # 排序
    x.sort()
    y.sort()
    # 取最大值
    y1 = y.max()
    # 取最小值
    y2 = y.main()
    # 切片




四pandas的操作。 import pandas as pda # 使用pandas生成資料 # Series代表某一串資料 index指定行索引名稱,Series索引預設從零開始 # DataFrame代表行列整合出來的資料框,columns 指定列名 a = pda.Series([8, 9, 2, 1], index=['one', 'two', 'three', 'four']) # 以列表的格式建立資料框 b = pda.DataFrame([[5,6,2,3],[3,5,1,4],[7,9,3,5]], columns=['one', 'two', 'three', 'four'],index=['one', 'two', 'three']) # 以字典的格式建立資料框 c = pda.DataFrame({ 'one':4, # 會自動補全 'two':[6,2,3], 'three':list(str(982)) }) # b.head(行數)# 預設取前5行頭 # b.tail(行數)# 預設取後5行尾 # b.describe() 統計資料的情況 count mean std min 25% max e = b.head() f = b.describe() # 資料的轉置,及行變成列,列變成行 g = b.T
print(e)
print(f)
print(g)


五python資料的匯入
    import pandas as pad
    f = open('d:/大.csv','rb')
    # 匯入csv
    a = pad.read_csv(f, encoding='python')
    # 顯示多少行多少列
    a.shape()
    a.values[0][2] #第一行第三列
    # 描述csv資料
    b = a.describe()
    # 排序
    c = a.sort_values()
    # 匯入excel
    d = pad.read_excel('d:/大.xls')
    print(d)
    print(d.describe())
    # 匯入mysql
    import pymysql
    conn = pymysql.connect(host='localhost', user='root', passwd='root', db='')
    sql = 'select * from mydb'
    e = pad.read_sql(sql, conn)
    # 匯入html表格資料 需要先安裝 html5lib和bs4
    g = pad.read_html('https://book.douban.com/subject/30258976/?icn=index-editionrecommend')
    # 匯入文字資料
    h = pad.read_table('d:/lianjie.txt','rb', engine='python')
    print(h.describe())
六matplotlib的使用
    # 折線圖/散點圖用plot
    # 直方圖用hist
    import matplotlib.pylab as pyl
    import numpy as npy
    x = [1,2,4,6,8,9]
    y = [5,6,7,8,9,0]
    pyl.plot(x, y) #plot(x軸資料,y軸資料,展現形式)
    # o散點圖,預設是直線 c cyan青色 r red紅色 m magente品紅色 g green綠色 b blue藍色 y yellow黃色 w white白色
    # -直線  --虛線  -. -.形式  :細小虛線
    # s方形 h六角形  *星星  + 加號  x x形式 d菱形 p五角星
    pyl.plot(x, y, 'D')
    pyl.title('name') #名稱
    pyl.xlabel('xname') #x軸名稱
    pyl.ylabel('yname') #y軸名稱
    pyl.xlim(0,20) #設定x軸的範圍
    pyl.ylim(2,22) #設定y軸的範圍
    pyl.show()
    # 隨機數的生成
    data = npy.random.random_integers(1,20,100) #(最小值,最大值,個數)
    # 生成具有正態分佈的隨機數
    data2 = npy.random.normal(10.0, 1.0, 10000) #(均值,西格瑪,個數)
    # 直方圖hist
    pyl.hist(data)
    pyl.hist(data2)
    # 設定直方圖的上限下限
    sty = npy.arange(2,20,2) #步長也表示直方圖的寬度
    pyl.hist(data, sty, histtype='stepfilled') # 去除輪廓
    # 子圖的繪製和使用
    pyl.subplot(2, 2, 2) # (行,列,當前區域)
    x1 = [2,3,5,8,6,7]
    y1 = [2,3,5,9,6,7]
    pyl.plot(x1, y1)
    pyl.subplot(2, 2, 1) # (行,列,當前區域)
    x1 = [2,3,5,9,6,7]
    y1 = [2,3,5,9,6,7]
    pyl.plot(x1, y1)
    pyl.subplot(2, 1, 2) # (行,列,當前區域)
    x1 = [2,3,5,9,6,7]
    y1 = [2,3,9,5,6,7]
    pyl.plot(x1, y1)
    pyl.show()