Python中NumPy基礎使用


Python發展至今,已經有越來越多的人使用python進行科學技術,NumPY是python中的一款高性能科學計算和數據分析的基礎包。

 

ndarray

ndarray(以下簡稱數組)是numpy的數組對象,需要注意的是,它是同構的,也就是說其中的所有元素必須是相同的類型。其中每個數組都有一個shape和dtype。

shape既是數組的形狀,比如

 1 import numpy as np
 2 from numpy.random import randn
 3 
 4 arr = randn(12).reshape(3, 4)
 5 
 6 arr
 7 
 8 [[ 0.98655235  1.20830283 -0.72135183  0.40292924]
 9  [-0.05059849 -0.02714873 -0.62775486  0.83222997]
10  [-0.84826071 -0.29484606 -0.76984902  0.09025059]]
11 
12 arr.shape 
13 (3, 4)

其中(3, 4)即代表arr是3行4列的數組,其中dtype為float64

一下函數可以用來創建數組

array   將輸入數據轉換為ndarray,類型可制定也可默認
asarray   將輸入轉換為ndarray
arange 類似內置range
ones、ones_like   根據形狀創建一個全1的數組、后者可以復制其他數組的形狀
zeros、zeros_like 類似上面,全0
empty、empty_like 創建新數組、只分配空間
eye、identity 創建對角線為1的對角矩陣

數組的轉置和軸對稱

轉置是多維數組的基本運算之一。可以使用.T屬性或者transpose()來實現。.T就是進行軸對換而transpose則可以接收參數進行更豐富的變換

arr = np.arange(6).reshape((2,3))
print arr

[[0 1 2]
 [3 4 5]]

print arr.T

[[0 3]
 [1 4]
 [2 5]]

arr = np.arange(24).reshape((2,3,4))
print arr

[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]

print arr.transpose((0,1,2))
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]

 

 

數組的運算

大小相等的數組之間做任何算術運算都會將運算應用到元素級別。

 1 arr = np.arange(9).reshape(3, 3)
 2 print arr
 3 
 4 [[0 1 2]
 5  [3 4 5]
 6  [6 7 8]]
 7 
 8 print arr*arr
 9 
10 [[ 0  1  4]
11  [ 9 16 25]
12  [36 49 64]]
13 
14 print arr+arr
15 
16 [[ 0  2  4]
17  [ 6  8 10]
18  [12 14 16]]
19 
20 print arr*4
21 
22 [[ 0  4  8]
23  [12 16 20]
24  [24 28 32]]

numpy的簡單計算中,ufunc通用函數是對數組中的數據執行元素級運算的函數。

如:

arr = np.arange(6).reshape((2,3))
print arr

[[0 1 2]
 [3 4 5]]

print np.square(arr)

[[ 0  1  4]
 [ 9 16 25]]

類似的有:abs,fabs,sqrt,square,exp,log,sign,ceil,floor,rint,modf,isnan,isfinite,isinf,cos,cosh,sin,sinh,tan,tanh,

add,subtract,multiply,power,mod,equal,等等

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM