1. 程式人生 > 其它 >不改一行程式碼,輕鬆擁有企業級微服務治理|MSE微服務治理專業版重磅釋出

不改一行程式碼,輕鬆擁有企業級微服務治理|MSE微服務治理專業版重磅釋出

Numpy(基礎包)

主要功能:

  • 一個多維陣列結構,高效且節省空間

  • 無需迴圈對整個陣列進行快速運算的函式

  • 線性代數、隨機數生成和傅立葉變換功能

安裝

pip install numpy

引用: import numpy as np

ndarray-多維陣列物件

建立ndarray

np.array(list)

與list的區別:

  • ndarray改值不改大小,陣列間對應位置的元素可進行運算

  • list改大小不改值

比如

a = np.array([i for i in range(10)])
b = [i for i in range(10)]
a*3
>>  array([ 0,  3,  6,  9, 12, 15, 18, 21, 24, 27])
b
*3 >> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

常用屬性

屬性註釋
dtype 陣列中資料型別
size 陣列中元素個數
shape 用元組表示陣列,比如二維陣列是(n*m),n行m列
T 陣列的轉置,比如行變成列,列變成行
ndim 陣列的維數

常用方法

方法註釋
array() 建立陣列
zeros() 建立全0的陣列
ones() 建立全1的陣列
empty() 建立空陣列(隨機值)
arange() 根據資料範圍建立陣列
linspace() 線性建立陣列,範圍資料平均分成n份,步長一致,呈線性遞增或者遞減
eye() 建立線性代數的單位矩陣
reshape() 根據陣列形狀排列陣列

索引和切片

多維陣列的索引

列表式寫法:a[2][3]

新式寫法:a[2,3]

多維陣列的切片

新式寫法:a[0:2,0:3]

布林型索引

列表式寫法:list(filter(lambda x:x>5,a))

新式寫法:a[(a>5) & (a%2==0)],加了括號才能當and使用,否則會成為位運算的與

a[(a>5) | (a%2==0)]

底層原理:

  • 對每一個元素進行判斷,返回一個布林陣列

  • 返回對應位置為True的元素的陣列

a = array([0,1,2,3])
​
a[[True,False,False,True]]
>> array([0,3]) # 只顯示True的元素

花式索引

a[[1,3,4,6,7]]:返回陣列中與其中列表中的陣列一致的元素

多維陣列寫法:a[[1,3],:][:,[1,3]]

通用函式

一元函式

abssqrt,exp,log,floor(向下取整),ceil(向上取整),round(四捨五入),trunc(截斷取整),rint(取整),modf(把小數和整數分開儲存),isnan(是否不是數),isinf(是否無窮大)

二元函式

add,substract,multiply,divide,power,mod,maximumminium(每個對應位置的元素進行比較)

統計

方法描述
sum() 求和
mean() 求平均
var() 求方差,表示資料的離散程度,越小越穩定
std() 標準差,越小
max() 最大值
min() 最小值
argmax() 最大值下標
argmin() 最小值下標

隨機生成

方法描述
np.random.randint() 給定shape產生隨機陣列(0~1)
np.random.rand() 給定shape產生隨機整數陣列
np.random.choice() 給定shape產生隨機選擇陣列
np.random.uniform() 給定shape產生隨機陣列
np.random.shuffle() 與random.shuffle()相同