<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
很簡單,Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經提供了類似於矩陣的表示形式,不過numpy為我們提供了更多的函數。如果接觸過matlab、scilab,那麼numpy很好入手。
NumPy是一個高效能的科學計算和資料分析基礎包。
NumPy的安裝相對簡單,我們可以通過Anaconda中的命令進行安裝,也可以通過“pip install numpy" 語句對NumPy進行安裝。如果需要驗證NumPy是否安裝成功,則可以在NumPy安裝完成後通過輸入“import numpy"後執行,看看是否輸出報錯提示。
import numpy as np #用array來建立 a=np.array([1,2,3]) #建立一維陣列 print(a) b=np.array([[1,2,3],[4,5,6]]) #建立高維陣列 print(b) #使用NumPy中的ones建立維度指定且元素全是1的陣列 c=np.ones([2,3]) #全是1的陣列 print(c) c[1,2]=3 #對陣列中的元素進行覆蓋 print(c) #建立維度制定且元素全為0的陣列 d=np.zeros([2,3]) print(d) #建立維度指定且元素全為亂數的陣列 e=np.empty([2,3]) print(e)
ndim:返回統計的陣列維數,即維度的數量
#建立維度指定且元素全為亂數的陣列 e=np.empty([2,3]) print(e) print(e.ndim)
結果:
[[0. 0. 0.]
[0. 0. 0.]]
2
shape:返回陣列的維度值,對返回的結果使用一個資料型別為整型的元組來表示,比如一個二維陣列返回的結果為(n,m),那麼n和m表示陣列中對應維度的資料的長度。如果使用shape輸出的是矩陣的維度,那麼在輸出的(n,m) 中,n表示矩陣的行,m表示矩陣的列。
#建立維度指定且元素全為亂數的陣列 e=np.empty([2,3]) print(e) print(e.shape)
結果:
[[0. 0. 0.]
[0. 0. 0.]]
(2, 3)
size:返回要統計的陣列中的元素的總數量
#建立維度指定且元素全為亂數的陣列 e=np.empty([2,3]) print(e) print(e.size)
結果:
[[0. 0. 0.]
[0. 0. 0.]]
6
dtype:返回陣列中的元素的資料型別。不過其顯示的資料型別和我們之前定義的變數的資料型別名有所區別,因為這些資料型別都是使用NumPy 進行定義的,而在NumPy中表示資料型別使用的是numpy.int32、numpy.int16和numpy.float64這類格式的名字
#建立維度指定且元素全為亂數的陣列 e=np.empty([2,3]) print(e) print(e.dtype)
結果:
[[0. 0. 0.]
[0. 0. 0.]]
float64
陣列能夠直接進行加法、減法、乘法和除法算術運算
import numpy as np g=np.array([1,2,3]) h=np.array([4,5,6]) print("a-b-",a-b) #列印a-b的結果 print("a+b =",a+b) #列印a+b的結果 print("a/b =",a/b) #列印a/b的結果 print("a*b =",a*b) #列印a*b的結果
結果:
a-b- [-3 -3 -3]
a+b = [5 7 9]
a/b = [0.25 0.4 0.5 ]
a*b = [ 4 10 18]
Process finished with exit code 0
從上面的範例可以看出,雖然陣列在構造上類似於矩陣,但是其運算和之前介紹的矩陣運算存在諸多不同:首先,矩陣是不存在除法運算的,但是陣列能夠進行除法運算:其次,陣列的乘法運算機制是通過將位置對應的元素相乘來完成的,和矩陣的乘法運算機制不同。下面來看看如何通過陣列實現矩陣乘法運算。
a=np.array([1,2,3]) b=np.array([4,5,6]) print("a-b-",a-b) #列印a-b的結果 print("a+b =",a+b) #列印a+b的結果 print("a/b =",a/b) #列印a/b的結果 print("a*b =",a*b) #列印a*b的結果 c = a.dot(b) print("Matrix1: a*b =",c) #列印a*b的結果 d = np.dot(a,b) print("Matrix2: a*b",c) #列印a*b的結果在執行後,輸出的內容
結果:
a-b= [-3 -3 -3]
a+b = [5 7 9]
a/b = [0.25 0.4 0.5 ]
a*b = [ 4 10 18]
Matrix1: a*b = 32
Matrix2: a*b 32
Process finished with exit code 0
在以上程式碼中使用了兩種方法來實現矩陣的乘法運算,其計算結果是一樣的。陣列和矩陣的算術運算還有一個較大的不同點,就是陣列可以直接和標量進行算術運算,但是在矩陣運算中是不可以的。
a = np.array([1,2,3]) print ("a * 2 =",a*2) print("a 1 2 =",a/2) print("a - 2 =",a-2) print("a + 2 =",a+2)
結果:
a * 2 = [2 4 6]
a 1 2 = [0.5 1. 1.5]
a - 2 = [-1 0 1]
a + 2 = [3 4 5]
(1)min:預設找出陣列的所有元素中值最小的元素,可以通過設定axis的值來按行或者列查詢元素中的最小值。
(2) max:預設找出陣列的所有元素中值最大的元素,可以通過設定axis的值來按行或者列查詢元素中的最大值。
(3) sum:預設對陣列中的所有元素進行求和運算,並返回運算結果,同樣可以通過設定axis的值來按行或者列對元素進行求和運算。
(4) exp:對陣列中的所有元素進行指數運算。
(5) sqrt: 對陣列中的所有元素進行平方根運算。
(6) square:對陣列中的所有元素進行平方運算。
生成亂數在我們平時的應用中是很有用的,在NumPy中有許多方法可以生成不同屬性的亂數,以滿足在計算中使用亂數字的需求。
(1) seed: 隨機因子,在亂數生成器的隨機因子被確定後,無論我們執行多少次隨機程式,最後生成的數位都是一樣的,隨機因子更像把隨機的過程變成一種 偽隨機的機制,不過這有利於結果的復現。
(2) rand: 生成一個在[0,1)範圍內滿足均勻分佈的隨機樣本數。
(3) randn:生成一個滿足平均值為0且方差為1的正太分佈隨機樣本數。
(4)randint:在給定的範圍內生成型別為整數的隨機樣本數。
(5) binomial: 生成-個維度指定且滿足二項分佈的隨機樣本數。
(6) beta:生成一個指定維度且滿足beta分佈的隨機樣本數。
(7) normal: 生成一個指定維度且滿足高斯正太分佈的隨機樣本數。
在陣列中也有索引、切片和迭代,其操作過程和列表類似,不過多維陣列相較於一維陣列,在索引、切片和迭代等操作上會更復雜。
a = np.arange(10) print(a) #輸出整個陣列 print(a[:5]) #輸出陣列的前 五個元素 for i in a: #迭代輸出陣列的全部元素 print (i)
結果:
[0 1 2 3 4 5 6 7 8 9]
[0 1 2 3 4]
0
1
2
3
4
5
6
7
8
9
Process finished with exit code 0
到此這篇關於python中NumPy安裝與基本操作的文章就介紹到這了,更多相關python中NumPy基本操作內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45