畢設的程式設計中使用了python來處理資料,主要使用的是numpy包,網上大部分對numpy進行介紹的教程比較老舊,想要使用的功能不太容易找到。因此,寫這篇文章來對現有的一些資源就行整理,當然想要更全面的了解numpy的使用還是從訪問官方手冊開始。
win下
pip isntall numpy
當然最好還是直接安裝pythonxy或者anaconda的整合包。
import numpy as np
a=np.array([1,2,3,4])
由a.shape
可知結果為(4,)
,說明a是乙個列向量
而a=([[1,2,3,4]])
是乙個橫向量 ;
c=np.array([[1, 2, 3, 4],[4, 5, 6, 7],[7, 5, 6, 8]])
對c的shape屬性賦值可以改變陣列的形狀。c.shape=4,3 就是將這個3*4的陣列變為4*3的陣列;結果是:array([[1, 2, 3],[4, 4, 5],[6, 7, 7],[5, 6, 8]])
。當你懶得算有計算每一排有幾個的時候可以這樣寫:c.shape=4,-1
,這樣的效果也是一樣的,-1可以用來代替乙個具體值。但是在不能均分的情況下就會報錯。
d=c.reshape
是在不改變原來資料的情況下實現對資料的變形,也可以實現上述的4*3陣列變為3*4的陣列功能,d=c.reshape((3,4))
;
type(c)
檢視c的資料型別,c.dtype
檢視c裡面的資料的型別;所以也可以在定義的時候就定下資料型別,b=np.array([1.2,2,2,3.1],dtype=np.int)
,結果是array([1, 2, 2, 3])
。
arange()
相當於函式range()
,指定開始值,終值,步長來建立一維陣列。注意 不包括終值 ,例如: b=np.arange(0,1,0.2) ,結果是:array([ 0. , 0.2, 0.4, 0.6, 0.8]) 。但是linspace()
卻是要包括終值的。他是指定開始值,終值,資料個數來建立一維陣列。例如:b=np.linspace(1,9,10)
,就是要將1到9之間均分為9份,結果是:array([ 1. , 1.88888889, 2.77777778, 3.66666667, 4.55555556,5.44444444, 6.33333333, 7.22222222, 8.11111111, 9. ])
。
zeros()
,ones()
,empty()
都是按照指定的形狀生成相應的陣列。例如:np.ones((2,3))
,結果就是array([[ 1., 1., 1.], [ 1., 1., 1.]])
np.zeros((3,4),dtype=np.float)
,結果就是array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.],[ 0., 0., 0., 0.]])
。唯一不同的是np.empty((5,2))
,結果為array([[ 2.43631958e-266, 0.00000000e+000], [ 0.00000000e+000, 0.00000000e+000],[ 0.00000000e+000, 0.00000000e+000], [ 0.00000000e+000, 0.00000000e+000], [ 0.00000000e+000, 0.00000000e+000]])
, 裡面不是資料,而是給資料分配的空間位址。
切片a=np.arange(0,10,1)
,我們可以使用a[3:7]
,表示a[3]
到a[6]
的所有元素組成的陣列array([3, 4, 5, 6])
;還可以在其中加上步長,但都 不包括最後乙個元素。而a[:-1]
,其中 含有負數就表示從後面開始;若是步長為負數,表示倒序排列 ,如:a[7:1:-1]
結果是array([7, 6, 5, 4, 3, 2])
。
通過整數列表獲得元素組成新的陣列:a[[1,2,2,3,5]]
。 取出a中的元素構成新的陣列,結果是array([1, 2, 2, 3, 5])
;下標也可是負數;
np.random.rand(10)
產生數值為0~1的隨機數組;
記住這個例子:
>>> a=np.arange(0,60,10).reshape(-1,1)+np.arange(0,6)
>>> a
array([[ 0, 1, 2, 3, 4, 5],
[10, 11, 12, 13, 14, 15],
[20, 21, 22, 23, 24, 25],
[30, 31, 32, 33, 34, 35],
[40, 41, 42, 43, 44, 45],
[50, 51, 52, 53, 54, 55]])
其中a[3,3:6]
表示第4行的第4到6列,結果是array([33, 34, 35])
;
a[:2]
表示前兩列:
array([[ 0, 1, 2, 3, 4, 5],[10, 11, 12, 13, 14, 15]])
;
而a[:,2]
表示第3列,array([ 2, 12, 22, 32, 42, 52])
;
a[1::,::2]
表示的是
array([[10, 12, 14],[20, 22, 24],[30, 32, 34],[40, 42, 44],[50, 52, 54]])
,即從第二行開始,選取每行中的元素,步進為2。
python科學計算之numpy
1.np.logspace start,stop,num 函式表示的意思是 在 start,stop 間生成等比數列num個 eg import numpy as npprint np.logspace 1,4,4 結果為 10.100.1000.10000.2.np.fromstring admi...
科學計算工具 Numpy
基礎類庫簡介 ndarray陣列建立 ndarray的矩陣運算 元素計算函式 元素統計函式 元素判斷函式 元素去重排序函式 資料分析概念 資料分析是指用適當的統計分析方法對收集來的大量資料進行分析,提取有用資訊和形成結論的過程。資料分析的過程 1.資料收集 本地資料或者網路資料的採集與操作.2.資料...
python 科學計算Numpy的自學 一
通過兩個月的努力,python終於從入門到了小精通。因為研究方向的需要所以在自學numpy,據說是乙個很強大的庫。因為我用的是ubuntu的作業系統,所以直接在python的安裝位置上敲入 sudo apt get install python numpy就可以。如果在資料分析後期還需要影象處理,那...