1. 程式人生 > >numpy使用方法簡單總結

numpy使用方法簡單總結

1.定義

NumPy 是一個 Python 包。 它代表 “Numeric Python”。 它是一個由多維陣列物件和用於處理陣列的例程集合組成的庫。
NumPy的陣列類被稱作ndarray。通常被稱作陣列。

2.初始化

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
  1. object 任何暴露陣列介面方法在這裡插入程式碼片的物件都會返回一個數組或任何(巢狀)序列。

  2. dtype 陣列的所需資料型別,可選。

  3. bool_ 儲存為一個位元組的布林值(真或假)

  4. int_ 預設整數,相當於 C 的long,通常為int32或int64

  5. intc 相當於 C 的int,通常為int32或int64

  6. intp 用於索引的整數,相當於 C 的size_t,通常為int32或int64

  7. int8 位元組(-128 ~ 127)

  8. int16 16 位整數(-32768 ~ 32767)

  9. int32 32 位整數(-2147483648 ~ 2147483647)

  10. int64 64 位整數(-9223372036854775808 ~ 9223372036854775807)

  11. uint8 8 位無符號整數(0 ~ 255)

  12. uint16 16 位無符號整數(0 ~ 65535)

  13. uint32 32 位無符號整數(0 ~ 4294967295)

  14. uint64 64 位無符號整數(0 ~ 18446744073709551615)

  15. float_ float64的簡寫

  16. float16 半精度浮點:符號位,5 位指數,10 位尾數

  17. float32 單精度浮點:符號位,8 位指數,23 位尾數

  18. float64 雙精度浮點:符號位,11 位指數,52 位尾數

  19. complex_ complex128的簡寫

  20. complex64 複數,由兩個 32 位浮點表示(實部和虛部)

  21. complex128 複數,由兩個 64 位浮點表示(實部和虛部)

3.陣列屬性

3.1 ndarray.shape

這一陣列屬性返回一個包含陣列維度的元組,它也可以用於調整陣列大小。

這會調整陣列大小

import numpy as np 
a = np.array([[1,2,3],[4,5,6]]) 
a.shape =  (3,2)  #維度不會改變
print(a) 

3.2ndarray.ndim

這一陣列屬性返回陣列的維數。

numpy.reshape(arr, newshape, order')

code

a=np.array([[1,2],[3,4]])
a.ndim #2
a=array([[1, 2, 3, 4]]) 
a.ndim #2
b=a.reshape(1,4,1)
b.ndim#3
b=a.reshape(1,4)
b.ndim#2
b=a.reshape(4)
b.ndim#1
a=np.array([1,2])
a.ndim #1

d.max(axis=0)   #軸的方向

3.4 ndarray.flatten(order)

該函式返回摺疊為一維的陣列副本,函式接受下列引數:

3.5 numpy.ravel

這個函式返回展開的一維陣列,並且按需生成副本。返回的陣列和輸入陣列擁有相同資料型別。這個函式接受兩個引數。

numpy.ravel(a, order)
#order:'C' -- 按行,'F' -- 按列,'A' -- 原順序,'k' -- 元素在記憶體中的出現順序。

code

c = [[1, 2], [3, 4]]  	# 二維列表
d = np.array(c)         	# 二維numpy陣列
d.shape                   	# (2, 2)
d.size                   	# 4
d.max(axis=0)  	   # 找維度0,也就是最後一個維度上(列方向)的最大值,array([3, 4])
d.mean(axis=0)          	# 找維度0,也就是第一個維度上的均值,array([ 2.,  3.])
d.flatten()              	# 展開一個numpy陣列為1維陣列,array([1, 2, 3, 4])
np.ravel(c)               # 展開一個可以解析的結構為1維陣列,array([1, 2, 3, 4])

3.6 numpy.transpose(arr, axes)

這個函式翻轉給定陣列的維度。如果可能的話它會返回一個檢視。函式接受下列引數:

import numpy as np 
a = np.arange(12).reshape(3,4) 
 
print( '原陣列:' )
print (a)
print ('\n') 
 
print ('轉置陣列:' )
print (np.transpose(a))
a.T#該函式屬於ndarray類,

4 陣列建立

numpy.zeros(shape, dtype = float, order = 'C')
numpy.ones(shape, dtype = None, order = 'C')

4.1 生成數值範圍的陣列

numpy.arange(start, stop, step, dtype)
numpy.linspace(start, stop, num, endpoint, retstep, dtype)

endpoint 序列中是否包含stop值,預設為ture
logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None):
start 起始值是base ** start
stop 終止值是base ** stop

4.3 切片和索引

c = [[1, 2], [3, 4],[5,6]]  	# 二維列表
d = np.array(c)         	# 二維numpy陣列
d[...,0]                        #輸出第一列
d[:,0]
d[0][1]                         #輸出特定位置
d[1:3,1]

4.4 陣列加和乘

a = np.array([1,2,3,4]) 
b = np.array([10,20,30,40]) 
c = a * b 
a = np.array([[0.0,0.0,0.0],[10.0,10.0,10.0],[20.0,20.0,20.0],[30.0,30.0,30.0]]) 
b = np.array([1.0,2.0,3.0])
c=a+b