NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。html
一、簡介python
Numpy是經常使用的科學計算庫。數組
NumPy 最重要的一個特色是其 N 維數組對象 ndarray,它是一系列同類型數據的集合,以 0 下標爲開始進行集合中元素的索引。網絡
ndarray 對象是用於存放同類型元素的多維數組。函數
使用array函數能夠建立ndarray對象。學習
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
參數說明:htm
名稱 | 描述 |
---|---|
object | 數組或嵌套的數列 |
dtype | 數組元素的數據類型,可選 |
copy | 對象是否須要複製,可選 |
order | 建立數組的樣式,C爲行方向,F爲列方向,A爲任意方向(默認) |
subok | 默認返回一個與基類類型一致的數組 |
ndmin | 指定生成數組的最小維度 |
array函數能夠將python的數據類型裝換爲ndarray類型,如列表、字典、元組等。對象
>>> import numpy as np >>> np.array([0,2,1]) #列表 array([0, 2, 1]) >>> np.array([[1, 2], [3, 4]]) #列表 array([[1, 2], [3, 4]]) >>> np.array({"name":"tom",1:True}) #字典 array({‘name‘: ‘tom‘, 1: True}, dtype=object) >>> np.array((1,3,0)) #元組 array([1, 3, 0])
ndarray也有一些屬性,如shape等。blog
>>> l=np.array([1,2,3,4,5],dtype=int,ndmin=3) #得到一個ndarray >>>l >>>array([[[1, 2, 3, 4, 5]]]) >>> l.shape=(5,1) #控制形狀 >>> l array([[1], [2], [3], [4], [5]])
二、屬性索引
ndarray有許多屬性。
ndarray.ndim | 秩,即軸的數量或維度的數量 |
---|---|
ndarray.shape | 數組的維度,對於矩陣,n 行 m 列 |
ndarray.size | 數組元素的總個數,至關於 .shape 中 n*m 的值 |
ndarray.dtype | ndarray 對象的元素類型 |
ndarray.itemsize | ndarray 對象中每一個元素的大小,以字節爲單位 |
ndarray.flags | ndarray 對象的內存信息 |
ndarray.real | ndarray元素的實部 |
ndarray.imag | ndarray 元素的虛部 |
ndarray.data | 包含實際數組元素的緩衝區,因爲通常經過數組的索引獲取元素,因此一般不須要使用這個屬性。 |
>>> l=np.array([1,2,3,4,5],dtype=int,ndmin=3) #得到一個ndarray >>>l >>>array([[[1, 2, 3, 4, 5]]]) >>> l.shape=(5,1) #控制形狀 >>> l array([[1], [2], [3], [4], [5]]) >>> l.size #數量 5 >>> l.ndim #秩 2 >>> l.flags #信息 C_CONTIGUOUS : True F_CONTIGUOUS : True OWNDATA : False WRITEABLE : True ALIGNED : True WRITEBACKIFCOPY : False UPDATEIFCOPY : False >>> l[4] #經過索引能夠訪問 array([5]) >>>
三、建立
建立ndarray不單單有array函數,還要其餘的一些函數。
zeros,empty,ones系列
這部分函數獲取的ndarray都是按照特定元素來填充的。
函數主要有這幾個參數:
參數 | 描述 |
---|---|
shape | 數組形狀 |
dtype | 數據類型,可選 |
order | 有」C」和」F」兩個選項,分別表明,行優先和列優先,在計算機內存中的存儲元素的順序。 |
>>> np.zeros([2,3]) #由0組成 array([[0., 0., 0.], [0., 0., 0.]]) >>> np.empty([3,2]) #隨機 array([[0., 0.], [0., 0.], [0., 0.]]) >>> np.ones([3,1]) #所有由一組成 array([[1.], [1.], [1.]])
arange函數
這個函數和range關鍵字功能相似。
>>> np.arange(1,10,2) #1-10之間、以2爲步長 array([1, 3, 5, 7, 9])
四、函數
numpy提供了許多函數來輔助處理。
如amin、amax、sort等算術函數。
l=np.array([1,3,9,2,8,4,0,4,2]) l.shape=(3,3) print(l) print("min: ",np.amin(l)) print("max: ",np.amax(l)) print(" axmin: ",np.min(l,1)) print(" aymin: ",np.min(l,0)) [[1 3 9] [2 8 4] [0 4 2]] min: 0 max: 9 axmin: [1 2 0] aymin: [0 3 2]
五、IO
numpy中的數組存入文件中以npy的後綴名。
經過load和save系列函數進行存入與讀取。
import numpy as np a=np.arange(1,100,5) np.save("nd",a) #寫入nd.npy中 b=np.load("nd.npy") #從文件中加載處來 print(b)
Python科學計算庫Numpy
原文地址:https://www.cnblogs.com/cgl-dong/p/14142977.html
本文的文字及圖片來源於網絡,僅供學習、交流使用,不具備任何商業用途,若有問題請及時聯繫咱們以做處理