1. 程式人生 > >numpy介紹——基礎操作(6)

numpy介紹——基礎操作(6)

這次教程是對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進行計算~

謝謝