[Python] Numpy庫

NumPy是一個開源的Python科學計算基礎庫,包含:

  • 一個強大的N維數組對象 ndarray
  • 廣播功能函數
  • 整合C/C++/Fortran代碼的工具
  • 線性代數、傅里葉變換、隨機數生成等功能

NumPy是SciPy、Pandas等數據處理或科學計算庫的基礎

包的下載與導入

Numpy 包,如果已安裝annaconda可直接使用,如果沒有,也可以自行搜索下載

導入常用別名 np

import numpy as np

ndarray

ndarray 是一個 多維數組對象 ,它由兩部分組成:

  • 實際的數據
  • 描述這些數據的元數據(數據維度,數據類型等)

ndarray 數組內元素類型一般要求相同(也可不同,不過這樣就和list區別不大了),數組下標從0開始。

它能夠從整體來描述一個數據集,能夠以整體的形式進行兩個數組的運算比較等操作。

創建

  1. 直接使用 np.array() 參數爲一個列表
>>> a = np.array([[0,1,2,3,4],
                 [5,6,7,8,9]])

屬性

[[0,1,2,3,4]],[5,6,7,8,9]]爲例

  1. 使用 .ndim 獲取維度信息
>>> a.ndim
>>> 2
  1. 使用 .shape 獲取數組的形狀
>>> a.shape
>>> (2,5)
  1. 使用 .size 獲取數組的大小(元素個數)
>>> a.size
>>> 10
  1. 使用 .dtype 獲取數組內元素的存儲類型,(默認值與操作系統有關)
>>> a.dtype
>>> dtype('int64')
  1. 使用 .itemsize 獲取數組內單個元素的大小(字節)
>>> a.itemsize
>>> 8

元素類型

  • ndarray 沒有 double 類型

  • 支持複數類型 complex64 , complex128

  • 常見的類型:int , uint, float , bool

    • 後綴16,32,65代表字節長度

數組的變換

維度變換

  1. 使用 .reshape(shape) 不改變數組元素,返回一個shape形狀的數組,原數組不變,shape爲數組形狀。

注意要保證改變形狀後的數組元素與之前一致

>>> a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
>>> b = a.reshape([5,2])
>>> [[ 1  2  3  4  5]
 [ 6  7  8  9 10]]
>>> [[ 1  2]
 [ 3  4]
 [ 5  6]
 [ 7  8]
 [ 9 10]]

原先2*5的數組a 變爲5*2的數組b

  1. 使用 .resize(shape).reshape() 功能一致

  2. 使用 .swapaxes(ax1,ax2) 調換兩個維度

>>> a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
>>> b = a.swapaxes(0,1)
>>> b
>>> [[ 1  6]
 [ 2  7]
 [ 3  8]
 [ 4  9]
 [ 5 10]]

注意與reshape返回的數組的區別

  1. 使用 .flatten() 變爲一維數組

類型變換

使用方法 .astype(new_type) 返回一個新的數組

>>> b = a.astype(float32)

列表變換

使用方法 .tolist() 返回一個列表

>>> ls = a.tolist()

a是一個ndarray數組,ls是由這個數組生成的列表

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