一:numpy模塊python
ndarray:存儲單一數據類型的多維數組數組
ufunc:可以對數組進行處理的函數(universal function object)數據結構
#numpy 中arange用法,指定開始值/終止值/步長來建立一維數組數組,可是數組不包括終值。 arange_array=np.arange(1,2,0.1) re_arange_array=arange_array.reshape(2,5)#使用reshape從新定義數組的維度或者數組的大小 print "arange_array is array,it's %s " % arange_array print "re_arange_array is:%s" % re_arange_array
#linspace函數經過指定開始值、終值和元素個數來建立一維數組,能夠經過endpoint關鍵字指定 #是否包括終值,缺省設置是包括終值: linspace_array=np.linspace(0, 1, 12)#建立的是等差數列! print "linspace_array is: %s" % linspace_array
#logspace建立等比數列,產生起始值10^起始值,到10^終止值,n個值的一維數組 logspace_array=np.logspace(0,2,30) print "logspace array is: %s" % logspace_array
def fun2(i,j): return (i+1)*(j+1) b=np.fromfunction(fun2,(9,9)) #fromfunction從函數建立數組,自定義函數,從函數中建立數組; #frompyfunc的調用格式爲frompyfunc(func, nin, nout),nin是此函數的輸入參數的個數,nout是此函數的返回值的個數。 print 'b is:%s' %b
數據類型(data type object, ie. numpy.dtype的實例)描述的是array對象怎樣解析內存中的固定大小的內存段。它描素了數據的一下幾個方面:ide
- 記錄的各個數據的名稱是什麼,怎麼獲取這個子數據。
- 每一個子數據的的類型是什麼。
- 每一個子數據都使用哪一部份內存。
import numpy as np; persontype=np.dtype({ 'names':['name','age','weight'], 'formats':['S32','i','f']}) a = np.array([("zhuang",32,75.5),("wang",24,65.2)],dtype=persontype) print a[1]['name'] print a.strides
擴展:經常使用tile函數和repeat函數擴展numpy模塊函數
1:numpy.tile(A,B)函數:重複A,B次,這裏的B能夠時int類型也能夠是元組類型spa
>>> import numpy >>> numpy.tile([0,0],5)#在列方向上重複[0,0]5次,默認行1次 array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) >>> numpy.tile([0,0],(1,1))#在列方向上重複[0,0]1次,行1次 array([[0, 0]]) >>> numpy.tile([0,0],(2,1))#在列方向上重複[0,0]1次,行2次 array([[0, 0], [0, 0]]) >>> numpy.tile([0,0],(3,1)) array([[0, 0], [0, 0], [0, 0]]) >>> numpy.tile([0,0],(1,3))#在列方向上重複[0,0]3次,行1次 array([[0, 0, 0, 0, 0, 0]]) >>> numpy.tile([0,0],(2,3))<span style="font-family: Arial, Helvetica, sans-serif;">#在列方向上重複[0,0]3次,行2次</span> array([[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])
2:repeat(A):重複A次 repeat([A,B]):對應重複A次,B次code
>>> from numpy import * >>> repeat(7.,4) array([ 7., 7., 7., 7.]) >>> a=array([10,20]) >>> a.repeat([3,2]) array([10, 10, 10, 20, 20]) >>> repeat(a,[3,2]) array([10, 10, 10, 20, 20]) >>> a=array([[10,20],[30,40]]) >>> a.repeat([3,2],axis=0) array([[10, 20], [10, 20], [10, 20], [30, 40], [30, 40]]) >>> a.repeat([3,2],axis=1) array([[10, 10, 10, 20, 20], [30, 30, 30, 40, 40]]) >>>
3:sum函數:orm
sum(a,axis=0):普通的相加對象
sum(axis=1) :將一個矩陣的每一行向量相加blog
4:argsort函數:返回排序後元素在原對象中的下標,屬於numpy中的函數
區別於sort函數和sorted函數
(1)、sort 只是list類型的內建函數,對其餘非列表型序列不適用。
(2)、sorted是全部類型的內建函數 ,返回排序後的對象,原對象不改變。進階:sorted(a,key=...,reversed=True)
a=array([(5,4,3,2,6),(7,8,0,1,9)]) >>> a array([[5, 4, 3, 2, 6], [7, 8, 0, 1, 9]]) >>> a.argsort() array([[3, 2, 1, 0, 4], [2, 3, 0, 1, 4]], dtype=int64)
5:zeros:建立0矩陣
二:spicy模塊