Numpy指南

  • 2019 年 12 月 31 日
  • 筆記

文章目錄

  1. 1. numpy指南
    1. 1.1. 安裝
    2. 1.2. 創建
      1. 1.2.1. array
      2. 1.2.2. arange
      3. 1.2.3. reshape
      4. 1.2.4. linspace
      5. 1.2.5. logspace
    3. 1.3. 存取數據
      1. 1.3.1. 下標存取
      2. 1.3.2. 使用整數序列
    4. 1.4. ufunc

numpy指南

numpy是一個能夠處理多維數組的庫,雖然python中也內置了處理數組的庫,但是這個並不能滿足大數據時代的需求,因此產生了可以處理多維數組的numpy

安裝

  • pip install numpy

創建

array

  • array函數是一個最基本的創建方式,其中傳入的參數是一個序列,既可以創建一維數組,也可以創建二維數組,但是這種方法不太靈活,因為你要把這個序列顯式的寫出來,先不多說了,自己體會吧
import numpy as np  a=np.array([1,2,3,4,5])   #創建一個二維數組  b=np.array([[1,2,3,4],[2,3,4,5]])  #創建一個二維數組    print a.shape     #輸出數組的維度,(5,)  print b.shape     #(2,4)

arange

  • arange(start,end,step) 創建一個一維數組,起始值為start,終值為end,步長為step,其中np.arrange(10) 表示起始值為0,終值為10,步長為1
a=np.arange(0,10,1)  b=np.arange(10)

reshape

  • reshape(a,b)能過改變當前數組的尺寸將其賦值給新的數組,但是當前數組並沒有改變,這個用來改變當前數組的維度,可以將以為數組改變為二維數組
a=np.arange(10)   #創建一個有10個元素的一維數組  b=np.reshape(2,5)  #將改變後的當前數組賦值給b,但是a數組並沒有改變 ,2*5=10  c=np.reshape(5,-1)  #第一個參數為5行,第二個-1表示自動計算生成,10/5=2

linspace

  • linspace(start,end,number) 創建一個等距離的數組,start是起始值,end是終值,number是個數,創建的是一個一維數組,其中的元素全部是浮點數,默認的是包括終值的,但是可以通過endpoint=False指定不包括終值
a=np.linspace(0,10,10)   #包含10的一個等差數組  b=np.linspace(0,10,10,endpoint=False)  #不包含10的一個等差數組

logspace

  • logspace(start,end,number) 創建的是在10^start和10^end之間包含number個元素的等比數組,創建的是一個等比數組
a=np.logspace(0,1,10)  #創建一個在1-10之間的10個元素的等比數組

存取數據

下標存取

a=np.arange(10)   #[0,1,2,3,4,5,6,7,8,9]  a[0]   #獲取第一個元素的值1  a[0:2]  #獲取下標我0,1的值,注意不包括2  a[0:10:1] # 獲取下標在0-10之間的(包括0,不包括9),步長為1的元素,就是每隔一個區娶一個  a[1:]     #獲取從第二個元素開始到最後的所有的元素  a[:8]     #獲取下標為0-8之間的元素(不包括8)  a[1::1]  #獲取下標為0到最後並且步長為1的所有元素  a[8:4:-1]  #獲取起始下標為8,終止下標為4,並且步長為-1,這是從後向前獲取元素  a[::-1]   #將數組逆置

使用整數序列

當使用整數序列對數組元素進行存取時,將使用整數序列中的每個元素作為下標,整數序列可以是列表或者數組。使用整數序列作為下標獲得的數組不和原始數組共享數據空間。

x = np.arange(10,1,-1)   x[[3, 3, 1, 8]] # 獲取x中的下標為3, 3, 1, 8的4個元素,組成一個新的數組

ufunc

ufunc是universal function的縮寫,它是一種能對數組的每個元素進行操作的函數。NumPy內置的許多ufunc函數都是在C語言級別實現的,因此它們的計算速度非常快.

np.sin(x)  #對數組中的每一個值進行sin操作,並且返回一個數組  np.sin(x,y)  #對數組x中的值進行sin操縱,所得結果返回給y,但是也返回一個結果數組,這個數組和y共享一塊空間的  np.add(a,b) #將兩個數組中的對應的值都相加,返回的是一個新的數組  np.add(a,b,c) # 將兩個數組中對應的值相加,結果複製給c,並且返回一個新的數組  np.subtract(a,b) # 兩個數組相減,a-b,返回的是一個新的數組  np.subtract(a,b,c)  np.multiply(a,b)  #相乘  np.multiply(a,b,c)  #相乘  divide(a,b,[,y])  #相除,如果是兩個整數相除,那麼返回的是整數  true_divide(a,b,[,y])  #相除,總是返回精確的商  floor_divide(a,b,[,y])  #總是對返回值取整  power(a,b,[,y])   # a^b  平方  mod(a,b,[,y])   #取余   %

Tags: