Python科學計算庫Numpy

Python科學計算庫Numpy

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

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具備任何商業用途,若有問題請及時聯繫咱們以做處理

相關文章
相關標籤/搜索