python科學計算 numpy

2021-07-14 18:13:53 字數 3118 閱讀 9518

畢設的程式設計中使用了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就可以。如果在資料分析後期還需要影象處理,那...