python中的科學計算 1

2021-07-24 21:34:45 字數 3084 閱讀 4247

1,廣播:對 形狀不同 的陣列的運算採取的操作。但是這個輸入的陣列中必須有乙個 某軸長度為1,或者缺 少了乙個維度(這個時候會自動的在shape屬性前面補上1)。例如:

import numpy as np

a=np.arange(10,50,10).reshape(-1,1)

a.shape

(4, 1)

b=np.arange(0,4)

b array([0, 1, 2, 3])

b.shape

(4,)

a+b

array([[10, 11, 12, 13],

[20, 21, 22, 23],

[30, 31, 32, 33],

[40, 41, 42, 43]])

2,內積:np.dot(a,b) 就可以來計算a,b的內積,同樣的np.inner(a,b)也可以,但是它要求最後一維度是要相同的,np.outer(a,b)則是將陣列 展平為一維陣列 再進行計算。

3,求和,平均值,方差:比較簡單,分別是np.sum(), np.mean(), np.var(), np.std()(這個是標準差),關鍵是在加入axis引數以後要很好的區分;看下面的例子應該就比較清楚了:

求和:

a

array([[6, 7, 1, 6],

[1, 0, 2, 3],

[7, 8, 2, 1]])

np.sum(a)

44 np.sum(a,axis= 0 )

array([14, 15, 5, 10])

np.sum(a,axis= 1 )

array([20, 6, 18])

np.sum(a,axis= -1 )

均值:

a

array([[6, 7, 1, 6],

[1, 0, 2, 3],

[7, 8, 2, 1]])

np.mean(a)

3.6666666666666665

np.mean(a,axis=0)

array([ 4.66666667, 5. , 1.66666667, 3.33333333])

方差:

np.var(a)

7.7222222222222223

np.var(a,axis=0)

array([ 6.88888889, 12.66666667, 0.22222222, 4.22222222])

np.std(a,axis=0)

array([ 2.62466929, 3.55902608, 0.47140452, 2.05480467])

4,最值和排序:最值有np.max(),np.min() 他們都有axis和out(輸出)引數, 而通過np.argmax(), np.argmin()可以得到取得最大或最小值時的 下標。排序通過np.sort(), 而np.argsort()得到的是排序後的資料原來位置的下標。

a array([[6, 7, 1, 6],

[1, 0, 2, 3],

[7, 8, 2, 1]])

a.sort()

a array([[1, 6, 6, 7],

[0, 1, 2, 3],

[1, 2, 7, 8]])

np.sort(a,axis=0)

array([[0, 1, 2, 3],

[1, 2, 6, 7],

[1, 6, 7, 8]])

np.argsort(a,axis=0)

array([[1, 1, 1, 1],

[0, 2, 0, 0],

[2, 0, 2, 2]])

5, 統計函式:unique()保留陣列中不同的值,返回兩個引數。bincount()對陣列中各個元素出現的次數進行統計,還可以設定相應的 權值。

b=np.random.randint(0,5,8)

b array([2, 3, 3, 0, 1, 4, 2, 4])

np.unique(b)

array([0, 1, 2, 3, 4])

c,s=np.unique(b,return_index=true)

c array([0, 1, 2, 3, 4])

s array([3, 4, 0, 1, 5])(元素出現的起始位置)

b array([2, 3, 3, 0, 1, 4, 2, 4])

np.bincount(b)

array([1, 1, 2, 2, 2]) 分別是0 1 2 3 4的個數;

w=np.random.rand(8)

w array([ 0.29529445, 0.4554129 , 0.69615963, 0.4766137 , 0.97929591,

0.46069939, 0.76476676, 0.74556715]) 權重值;

np.bincount(b,w)。

array([ 0.4766137 , 0.97929591, 1.06006121, 1.15157254, 1.20626654]) 權重和;

6,掩碼陣列:表示的是不完整的資料或是含有無效值的資料。

import numpy.ma as ma

b array([2, 3, 3, 0, 1, 4, 2, 4])

mask=b<3

mx=ma.array(b,mask=mask)

mx masked_array(data = [– 3 3 – – 4 – 4],

mask = [ true false false true true false true false],fill_value = 999999)

接下來就可以對這些資料操作了。

Windows中的Python科學計算開發環境

1.spyder windows的命令列下輸入pip install spyder即可。此時,輸入spyder並不能出現spyder介面,需要另外安裝pyqt4或者pyqt5的安裝包。附 sypder installation官方文件 或者,直接安裝anaconda,spyder直接包含在其中。更新...

python科學計算 numpy

畢設的程式設計中使用了python來處理資料,主要使用的是numpy包,網上大部分對numpy進行介紹的教程比較老舊,想要使用的功能不太容易找到。因此,寫這篇文章來對現有的一些資源就行整理,當然想要更全面的了解numpy的使用還是從訪問官方手冊開始。win下 pip isntall numpy當然最...

用Python做科學計算

python是一種物件導向的 動態的程式語言,具有非常簡潔而清晰的語法,既可以用於快速開發程式指令碼,也可以用於開發大規模的軟體,特別適合於完成各種高層任務。隨著numpy,scipy,matplotlib,enthought librarys等眾多程式庫的開發,python越來越適合於做科學計算。...