numpy介紹——基礎操作(6)
阿新 • • 發佈:2019-02-11
這次教程是對python的numpy這個包做一個介紹
numpy是python用於分析資料,處理矩陣的一個非常實用的包,下面我將會在jupyter notebook上,一步一步實現numpy這個包的各種用法,並配上說明。
這一節我們要學習的是,生成矩陣。
import numpy as np
import pandas as pd
a=np.random.random([3,3])
a
首先匯入之前安裝好的包numpy和pandas
按照上圖方法,可以建立一個3行3列的矩陣,矩陣元素隨機分佈在0到1之間
array([[0.73171217, 0.43880544, 0.21583348], [0.46026688, 0.7176575 , 0.33961139], [0.76468958, 0.08658304, 0.70468339]])
我們可以利用tuple來生成一個array
#利用tuple來建立一個array
#dtype的意思是,將傳入的tuple轉化成array形式,並且型別為int型別,也就是整數型
t=(1,2,3)
a=np.array(t,dtype='int')
a
生成結果為
array([1, 2, 3])
還可以利用list來生成一個array
list1=[1,2,3]
a=np.array(list1,dtype='int')
a
結果為
array([1, 2, 3])
剛才生成了list1,我們來生成一個list2,並把兩個合併一下看看
list2=[3.1,4.6,7.4] b=np.array([list1,list2]) b #合併之後的list1變成了1. 2. 3.,從int型自動變成了float型
結果為
array([[1. , 2. , 3. ],
[3.1, 4.6, 7.4]])
當然矩陣裡面的元素還可以設定成虛數
#將dtype寫成complex可以將輸入的array變成虛數
c=np.array([[1,2],[3,4]],dtype=complex)
c
結果為array([[1.+0.j, 2.+0.j],
[3.+0.j, 4.+0.j]])
我們還可以檢視numpy生成的array的結構,利用shape這個函式。
c.shape
結果為一個兩行兩列的array
(2, 2)
通過numpy還可以直接生成元素全部為0或者元素全部為1的矩陣。
np.zeros([2,2])
array([[0., 0.],
[0., 0.]])
np.ones([2,3])
array([[1., 1., 1.],
[1., 1., 1.]])
不過如果嘗試生成元素全部為2或者其他數字的矩陣,則會報錯了~
繼續~我們來生成對角線為1的矩陣
#斜角為1的矩陣
np.eye(4)
結果為
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
生成元素間隔為某一常數的矩陣(這個例子裡,元素從2開始,到12結尾,間隔設定為2,但是輸出不包括12)
#從2開始到12為止(不包括12),每隔2個數出現
np.arange(2,12,2)
結果為
array([ 2, 4, 6, 8, 10])
同理可以生成元素可以被等分的矩陣,利用linspace函式,將從0到10的元素等分為3份
#linspace(a,b,c)代表,從a到b,按照c進行等分
np.linspace(0,10,3)
結果為
array([ 0., 5., 10.])
再試一次,將從0到10的元素等分為5份
np.linspace(0,10,5)
結果為
array([ 0. , 2.5, 5. , 7.5, 10. ])
對於矩陣的生成方法基本介紹完了,下一節將會介紹,如果對numpy生成的array進行計算~
謝謝