1. 程式人生 > >numpy.array的基本操作(numpy陣列運算)

numpy.array的基本操作(numpy陣列運算)

為什麼要用numpy

  • Python中提供了list容器,可以當作陣列使用。但列表中的元素可以是任何物件,因此列表中儲存的是物件的指標,這樣一來,為了儲存一個簡單的列表[1,2,3]。就需要三個指標和三個整數物件。對於數值運算來說,這種結構顯然不夠高效。
  • Python雖然也提供了array模組,但其只支援一維陣列,不支援多維陣列,也沒有各種運算函式。因而不適合數值運算。
  • NumPy的出現彌補了這些不足。
import numpy as np

陣列建立

##常規建立方法
a = np.array([2,3,4])
b = np.array([2.0,3.0,4.0])
c = np.array([[1.0,2.0],[3.0,4.0]])
d = np.array([[1,2],[3,4]],dtype=complex) # 指定資料型別
print a, a.dtype
print b, b.dtype
print c, c.dtype
print d, d.dtype
[2 3 4] int32
[ 2.  3.  4.] float64
[[ 1.  2.]
 [ 3.  4.]] float64
[[ 1.+0.j  2.+0.j]
 [ 3.+0.j  4.+0.j]] complex128
##建立陣列的常用函式
print np.arange(0,7,1,dtype=np.int16) # 0為起點,間隔為1時可預設(引起歧義下不可預設)
print np.ones((2,3,4),dtype=np.int16) # 2頁,3行,4列,全1,指定資料型別
print np.zeros((2,3,4)) # 2頁,3行,4列,全0
print np.empty((2,3)) #值取決於記憶體
print np.arange(0,10,2) # 起點為0,不超過10,步長為2
print np.linspace(-1,2,5) # 起點為-1,終點為2,取5個點 
print np.random.randint(0,3,(2,3)) # 大於等於0,小於3,2行3列的隨機整數