引言 : python
數據分析 : 就是把隱藏在一些看似雜亂無章的數據背後的信息提煉出來,總結出研究對象的內在規律 . 數組
數據分析三劍客 : Numpy 數組計算dom
Pandas 表計算與數據分析ide
Matplotlib 繪圖和可視化函數
1 . NumPy(Numerical Python) 是 python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算 , 此外也針對數組運算提供大量的數學函數庫工具
2 . NumPy是高性能科學計算和分析的性能
3 . 安裝方法 : spa
pip install numpy 3d
注意 : 示例均是在jupyter上演示的code
1 . 使用 np.array() 建立
# 導包 # 一般都將 numpy簡化成np import numpy as np
1) . 一維數組的建立
np.array([1,2,3,4.5])
2) . 二維數組的建立 np.array([[1,2,3,4],[5,6,7,8]])
注意 :
3) . 使用matplotlib.pyplot獲取一個numpy數組,數據來源於圖片
2 . 使用 np 的 routines 函數建立
建立ndarray:
array() 將列表轉換爲數組,可選擇顯式指定dtype
arange() range的numpy版,支持浮點數
linspace() 相似arange(),第三個參數爲數組長度
zeros() 根據指定形狀和dtype建立全0數組
ones() 根據指定形狀和dtype建立全1數組
empty() 根據指定形狀和dtype建立空數組(隨機值)
eye() 根據指定邊長和dtype建立單位矩陣
例如 :
1 . 經常使用屬性 :
2 . 經常使用方法 :
array.shape array的規格 array.ndim array.dtype array的數據規格 numpy.zeros(dim1,dim2) 建立dim1*dim2的零矩陣 numpy.arange numpy.eye(n) /numpy.identity(n) 建立n*n單位矩陣 numpy.array([…data…], dtype=float64 ) array.astype(numpy.float64) 更換矩陣的數據形式 array.astype(float) 更換矩陣的數據形式 array * array 矩陣點乘 array[a:b] 切片 array.copy() 獲得ndarray的副本,而不是視圖 array [a] [b]=array [ a, b ] 二者等價 name=np.array(['bob','joe','will']) res=name==’bob’ res= array([ True, False, False], dtype=bool) data[True,False,…..] 索引,只索取爲True的部分,去掉False部分 經過布爾型索引選取數組中的數據,將老是建立數據的副本。 data[ [4,3,0,6] ] 索引,將第4,3,0,6行摘取出來,組成新數組 data[-1]=data[data.__len__()-1] numpy.reshape(a,b) 將a*b的一維數組排列爲a*b的形式 array([a,b,c,d],[d,e,f,g]) 返回一維數組,分別爲[a,d],[b,e],[c,f],[d,g] array[ [a,b,c,d] ][:,[e,f,g,h] ]=array[ numpy.ix_( [a,b,c,d],[e,f,g,h] ) ] array.T array的轉置 numpy.random.randn(a,b) 生成a*b的隨機數組 numpy.dot(matrix_1,matrix_2) 矩陣乘法 array.transpose( (1,0,2,etc.) ) 對於高維數組,轉置須要一個由軸編號組成的元組
1、數組和標量之間的運算 a+1 a*3 1//a a**0.5 2、一樣大小數組之間的運算 a+b a/b a**b 3、數組的索引: 一維數組:a[5] 多維數組: 列表式寫法:a[2][3] 新式寫法:a[2,3] (推薦) 數組的切片: 一維數組:a[5:8] a[4:] a[2:10] = 1 多維數組:a[1:2, 3:4] a[:,3:5] a[:,1] 4、強調:與列表不一樣,數組切片時並不會自動複製,在切片數組上的修改會影響原數組。 【解決方法:copy()】
1 . 索引
一維與列表徹底一致 , 多維同理
2 . 切片
1) . 一維與列表徹底相同 , 多維同理
2) . 將數據進行反轉 , 例如 : [1,2,3] --> [3,2,1]
3) . 對圖片進行操做
3 . 變形
使用 reshape()函數,注意一個參數是 --- tuple !
4 . 級聯
np.concatenate()
級聯須要注意的點:
5 . 切割
給圖片進行切割
原圖片 :
經常使用函數: sum 求和 cumsum 求前綴和 mean 求平均數 std 求標準差 var 求方差 min 求最小值 max 求最大值 argmin 求最小值索引 argmax 求最大值索引
np.sort() 和 ndarray.sort() 的區別 :
隨機數生成函數在np.random子包內
經常使用函數 :