python之NumPy基礎

注:因爲初次接觸Numpy,這篇總結中有些知識點的理解參考了其他博主的文章。

使用時首先導包:
import numpy as np

1、seed
作用是使得隨機數據可預測。
np.random.seed(相同值)

若seed後參數爲不同值或者爲空值,那麼每次生成的隨機數就不一樣了。

參考資料得:
seed( ) 用於指定隨機數生成時所用算法開始的整數值。
1.如果使用相同的seed( )值,則每次生成的隨即數都相同;
2.如果不設置這個值,則系統根據時間來自己選擇這個值,此時每次生成的隨機數因時間差異而不同。
3.設置的seed()值僅一次有效

2、創建數組
np.array(數據值)
#數據值中既可以是單個值,也可以寫多維數組。

3、nidm
數組的維度
ndarray.nidm(維度)

4、shape
ndarray.shape
數組中每個維度的大小.對於一個n行和m列的矩陣,其shape爲(n,m)。

5、size
ndarray.size
表示數組中元素的個數,其值等於shape中所有整數的乘積。

6、dtype
ndarray.dtype
用來描述數組中元素的類型,ndarray中的所有元素都必須是同一種類型,如果在構造數組時,傳入的參數不是同一類型的,不同的類型將進行統一轉化。

7、特殊函數
np.zeros((n,m,p,…)) #創建一定維度的全是0的數組
np.ones((n,m,p,…)) #同上,全是1
np.arange(m) #產生0~m-1的一維數組
np.arange(n,m,p)#產生從n~m-1,每次相隔p的等差數列
np.linspace(n,m,p) #產生從n~m-1的p個數。
np.eye(n) #生成n行/列的對角矩陣
np.random.random(n,m) #生成n行m列的[0,1)的浮點數隨機數。

8、索引
array創建的數組有索引,可以直接對索引賦值來修改數組的數據。

9、切片
以元組的形式
x[a:b,c:d]
比如x[0:2 , 1:3],逗號左邊產生0,1 逗號右邊產生1,2 所以會產生行爲0和1,列爲1和2的數列。這是針對二維數組,如果是多維數組,需要多個逗號分隔,逗號之間的切片決定了第幾維數的取值範圍。

10、len()
len(x) #返回x中對象的長度

11、boolean值
print(x>2)會打印出x這個矩陣中大於2的boolean值,還是以矩陣形式顯示。

print(x[ x>2] )會打印出矩陣中x>2爲true的數據值。

12、數學操作
np.add(x,y) #x+y
np.subtract(x,y) #x-y
np.multiply(x,y) #x*y

#注意,這裏說的數據操作針對的是矩陣中各個元素的加減法,,並不是整個矩陣的加減法。

對整個矩陣的乘法操作用**dot()**函數。
np.dot(x,y)或者x.dot(y)
###所得到的數組中的每個元素爲,第一個矩陣中與該元素行號相同的元素與第二個矩陣與該元素列號相同的元素,兩兩相乘後再求和。

sum() #對元素求和

print ("sum all: ", np.sum(x)) # adds all elements
print ("sum by col: ", np.sum(x, axis=0)) # add numbers in each column
print ("sum by row: ", np.sum(x, axis=1)) # add numbers in each row

矩陣轉置transposing:
x.T

tile()函數
tile(x,m,n)
把x矩陣擴展成m行n列。
Numpy的 tile() 函數,就是將原矩陣橫向、縱向地複製。tile 是瓷磚的意思,顧名思義,這個函數就是把數組像瓷磚一樣鋪展開來。

數組廣播broadcast
用於處理不同維度的數組計算問題,如果兩個數組的shape值不同,那麼應用broadcast,shape小的數組會broadcast成大數組的size。
應用時沒有具體函數,直接進行數學運算就好。

reshape
在不改變數據內容的情況下,改變數據的格式。
np.reshape(x,(n,m))
對矩陣x重排成n行m列。

squeeze
從數組的形狀中刪除單維條目,即把shape中爲1的維度去掉
np.squeeze(x,1)

expand_dims
對數組添加維數。
np/expand_dims(x,索引號)
#在該索引處對shape添加1,例如:
x.shape爲(2,3)
y = np.expand_dims(x, 1)
那麼y.shape爲(2,1,3)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章