科學計算之Numpy入門1

2021-09-24 17:25:43 字數 3224 閱讀 7832

numpy所包括的函式可以十分方便的進行資料處理,尤其是矩陣運算,之前的python都是使用列表與元組,在進行矩陣運算的時候非常不便。對於同樣的數值計算任務,使用numpy要比直接使python**方便得多。因為numpy 能夠直接對陣列和矩陣進行操作,**量大大的減少了,並且其眾多的數學函式也會讓編寫**的工作輕鬆許多。

使用建立二維陣列的方法建立矩陣,我們使用的是array函式

1.生成矩陣例項;

import numpy as np

a=np.array([[1,2],[3,4]])

print(a)

輸出結果為

2.資料型別定義;

我們知道每乙個元素都有對應的資料型別,numpy的資料型別有int32 int64 float32 bool等,我將如何定義呢?需要使用dtype,

例項:

a=np.array([[1,3,5],[2,5,3],[3,5,7]],dtype=np.float) 

print(a.dtype)

輸出為:

這個時候陣列中的每乙個元素型別已經定義為了float64型別,當然你也可以定義為float32

3.檢視矩陣資訊;

這個時候可以用ndim檢視維度(注意這裡是陣列的維度,區分清楚陣列和矩陣),用shape和size看矩陣大小

例項:

a=np.array([[1,3,5],[2,5,3],[3,5,7]],dtype=np.float) 

print(a)

print('number of dim: ',a.ndim)

print('shape: ',a.shape)

print('size: ',a.size)

print(a.dtype)

1.建立0矩陣

a=np.zeros((3,4))

print(a)

建立3行4列的0矩陣,輸出為:

2.建立全為1的矩陣

a=np.ones((5,5))
建立5x5的矩陣

輸出為:

3.利用reshape生成特定的矩陣

a=np.arange(8,20,1).reshape((3,4))
範圍8到20,步長為1,生成3x4的矩陣

輸出:4.利用random生成隨機矩陣

r=np.random.random((2,4))
生成2x4的隨機數矩陣

1.加減運算

這裡指的是2個矩陣的對應元素相加減,這裡一定要注意是同型別的矩陣不然會報錯

a=np.arange(8,20,1).reshape((3,4))

print(a)

[[ 8 9 10 11]

[12 13 14 15]

[16 17 18 19]]

b=np.ones((3,4))

print(b)

[[1. 1. 1. 1.]

[1. 1. 1. 1.]

[1. 1. 1. 1.]]

>>> c=a-b

[[ 7. 8. 9. 10.]

[11. 12. 13. 14.]

[15. 16. 17. 18.]]

2.矩陣中每乙個元素自己的平方運算

a=np.arange(8,20,1).reshape((3,4))

print(a)

[[ 8 9 10 11]

[12 13 14 15]

[16 17 18 19]]

a**2

array([[ 64, 81, 100, 121],

[144, 169, 196, 225],

[256, 289, 324, 361]], dtype=int32)

c=np.dot(a,d)
第二種:

c=a.dot(d)
結果都一樣,不過需要注意的是

ps:來自《線性代數》同濟大學數學系編 第六版

一定要注意,不然是會報錯的。

1.三角函式

>>> c=np.sin(b)

>>> print(b)

[[1. 1. 1. 1.]

[1. 1. 1. 1.]

[1. 1. 1. 1.]]

>>> print(c)

[[0.84147098 0.84147098 0.84147098 0.84147098]

[0.84147098 0.84147098 0.84147098 0.84147098]

[0.84147098 0.84147098 0.84147098 0.84147098]]

可以看出每乙個元素都進行了sin()的操作,另外cos tan等同理,注意定義域範圍。

2.判斷大小

>>> a

array([[ 8, 9, 10, 11],

[12, 13, 14, 15],

[16, 17, 18, 19]])

>>> a<14

array([[ true, true, true, true],

[ true, true, false, false],

[false, false, false, false]])

這裡判斷小於14的值,符合則輸出true否則false

3.求矩陣中的最大值和最小值和矩陣各個元素求和

print(np.sum(a))

print(np.min(a))

print(np.max(a))

同時我們也可以使用axis來控制行和列

print(np.sum(a,axis=1))  #axis為1則在行中求和,0則在列中

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...

python科學計算 numpy

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

科學計算工具 Numpy

基礎類庫簡介 ndarray陣列建立 ndarray的矩陣運算 元素計算函式 元素統計函式 元素判斷函式 元素去重排序函式 資料分析概念 資料分析是指用適當的統計分析方法對收集來的大量資料進行分析,提取有用資訊和形成結論的過程。資料分析的過程 1.資料收集 本地資料或者網路資料的採集與操作.2.資料...