1. 程式人生 > >【python】numpy庫ndarray多維陣列的的運算:np.abs(x)、np.sqrt(x)、np.modf(x)等

【python】numpy庫ndarray多維陣列的的運算:np.abs(x)、np.sqrt(x)、np.modf(x)等

numpy庫提供非常便捷的陣列運算,方便資料的處理。

1、陣列與標量之間可直接進行運算

In [45]: a
Out[45]:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

In [46]: a/5
Out[46]:
array([[ 0. ,  0.2,  0.4,  0.6],
       [ 0.8,  1. ,  1.2,  1.4],
       [ 1.6,  1.8,  2. ,  2.2]])

2、NumPy一元函式對ndarray中的資料執行元素級運算的函式

  • np.abs(x)、np.fabs(x) : 計算陣列各元素的絕對值
  • np.sqrt(x) : 計算陣列各元素的平方根
  • np.square(x) : 計算陣列各元素的平方
  • np.log(x) 、np.log10(x)、np.log2(x) : 計算陣列各元素的自然對數、10底對數和2底對數
  • np.ceil(x) 、np.floor(x) : 計算陣列各元素的ceiling值或floor值
In [48]: a[1,1] = -1

In [49]: a
Out[49]:
array([[ 0,  1,  2,  3],
       [ 4, -1,  6,  7],
       [ 8,  9, 10, 11]])

In [50]: np.abs(a)
Out[50
]: array([[ 0, 1, 2, 3], [ 4, 1, 6, 7], [ 8, 9, 10, 11]])
  • np.rint(x) : 計算陣列各元素的四捨五入值
  • np.modf(x) : 將陣列各元素的小數和整數部分以兩個獨立陣列形式返回
  • np.cos(x)、 np.cosh(x)、np.sin(x)、 np.sinh(x)、np.tan(x) 、np.tanh(x) : 計算陣列各元素的普通型和雙曲型三角函式
  • np.exp(x) : 計算陣列各元素的指數值
  • np.sign(x) : 計算陣列各元素的符號值,1(+), 0, ‐1(‐)

3、NumPy二元函式對ndarray中的資料執行元素級運算的函式

  • +、 ‐、 * 、/ 、** 兩個陣列各元素進行對應運算
  • np.maximum(x,y) 、np.fmax()、 np.minimum(x,y) 、np.fmin() :元素級的最大值/最小值計算
  • np.mod(x,y) :元素級的模運算
  • np.copysign(x,y) : 將陣列y中各元素值的符號賦值給陣列x對應元素
  • > < >= <= == != 算術比較,產生布爾型陣列
In [59]: b = np.full_like(a,2)

In [60]: b
Out[60]:
array([[2, 2, 2, 2],
       [2, 2, 2, 2],
       [2, 2, 2, 2]])

In [61]: a*b
Out[61]:
array([[ 0,  2,  4,  6],
       [ 8, -2, 12, 14],
       [16, 18, 20, 22]])

In [62]: np.maximum(a,b)
Out[62]:
array([[ 2,  2,  2,  3],
       [ 4,  2,  6,  7],
       [ 8,  9, 10, 11]])

In [63]: a>b
Out[63]:
array([[False, False, False,  True],
       [ True, False,  True,  True],
       [ True,  True,  True,  True]], dtype=bool)