1. 程式人生 > 實用技巧 >NumPy 陣列運算

NumPy 陣列運算

位運算:

函式描述
bitwise_and 對陣列中整數的二進位制形式執行位與操作(都為1則為1)
bitwise_or 對陣列中整數的二進位制形式執行位或操作(都為0則為0)
invert 對陣列中整數的二進位制形式執行按位取反
left_shift 將陣列元素的二進位制形式向左移動到指定位置,右側附加相等數量的 0。
right_shift 將陣列元素的二進位制形式向右移動到指定位置,左側附加相等數量的 0。

字串操作:

函式描述
numpy.char.add() 對兩個陣列的逐個字串元素進行連線(np.char.add([' str1', ' str2'],[' str3', ' str4']))
numpy.char.multiply() 返回按元素多重連線後的字串(np.char.multiply('String',3))
numpy.char.center() 居中字串(np.char.center('String', 20,fillchar = '*'))
numpy.char.capitalize() 將字串第一個字母轉換為大寫(np.char.capitalize('string'))
numpy.char.title() 將字串的每個單詞的第一個字母轉換為大寫(np.char.title('start learn numpy'))
numpy.char.lower()
陣列元素轉換為小寫(np.char.lower('START LEARN NUMPY'))
numpy.char.upper() 陣列元素轉換為大寫(np.char.upper('start learn numpy'))
numpy.char.split() 指定分隔符對字串進行分割,並返回陣列列表。預設情況下,分隔符為空格。
numpy.char.splitlines() 返回元素中的行列表,以換行符分割。\n,\r,\r\n 都可用作換行符。
numpy.char.strip() 移除元素開頭或者結尾處的特定字元
numpy.char.join() 通過指定分隔符來連線陣列中的元素
numpy.char.replace() 使用新字串替換字串中的所有子字串
numpy.char.decode() 陣列元素依次呼叫str.decode
numpy.char.encode() 陣列元素依次呼叫str.encode

數學函式:

三角函式:

numpy.sin()、numpy.cos()、tnumpy.an()返回給定角度的 sin,cos 和 tan值。

numpy.radians()/numpy.deg2rad():將角度轉換為弧度。a*np.pi/180

numpy.arcsin(),numpy.arccos(),和numpy. arctan() 返回給定角度的 sin,cos 和 tan 的反三角函式。

numpy.degrees()/ numpy.rad2deg():將弧度轉換為角度。

numpy.sinh(),numpy.cosh(),numpy.tanh():返回給定角度的雙曲正弦,雙曲餘弦,雙曲正切。

numpy.arcsinh(),numpy.arccosh(),numpy.arctanh():返回給定角度的反雙曲正弦,反雙曲餘弦,反雙曲正切。

numpy.hypot(x1,x2):直角三角形求斜邊。

舍入函式:

numpy.around(a,decimals) /numpy.round(a,decimals)函式返回指定數字的四捨五入值。

decimals: 舍入的小數位數。 預設值為0。 如果為負,整數將四捨五入到小數點左側的位置

np.around([1,6], decimals = -1) >>> array([ 0, 10])

numpy.rint()返回四捨五入的整數。

np.rint([-1.7, 1.5, -0.2, 0.6, 10]) >>>array([-2., 2., -0., 1., 10.])

numpy.floor() 返回小於或者等於指定表示式的最大整數,即向下取整。

np.floor([-1.7, 1.5, -0.2, 0.6, 10]) >>> array([-2., 1., -1., 0., 10.])

numpy.ceil() 返回大於或者等於指定表示式的最小整數,即向上取整。

np.ceil([-1.7, 1.5, -0.2, 0.6, 10]) >>> array([-1., 2., -0., 1., 10.])

numpy.fix()返回相對於0的最接近的整數。

np.fix([-1.7, 1.5, -0.2, 0.6, 10]) >>>array([-1., 1., -0., 0., 10.])

numpy.modf(a)返回值為兩個ndarray,分別為a的小數部分和x的整數部分。

numpy.trunc(a)返回a中的整數部分。

算術函式:

加減乘除: add()subtract()multiply(), divide()

需要注意的是陣列必須具有相同的形狀或符合陣列廣播規則。

numpy.reciprocal() 函式返回引數逐元素的倒數。

numpy.negative()函式返回引數逐元素的相反數。

numpy.sqrt()函式返回引數逐元素的平方根。

numpy.cbrt()函式返回引數逐元素的立方根。

numpy.square()函式返回引數逐元素的平方。

numpy.absolute()函式返回引數逐元素的絕對值, 可求解複數。

numpy.abs()/numpy.fabs()函式返回引數逐元素的絕對值。

numpy.sign()符號函式。

numpy.maximum()函式返回最大值。

numpy.minimum()函式返回最小值。

numpy.nan_to_num()用 0 替換 NaN。

numpy.power() 函式將第一個輸入陣列中的元素作為底數,計算它與第二個輸入陣列中相應元素的冪。

numpy.mod()/numpy.fmod() 計算輸入陣列中相應元素的相除後的餘數。 函式 numpy.remainder() 也產生相同的結果。

指數與對數:

numpy.exp(x)返回e的x次冪

numpy.exp2(x)返回2的x次冪

numpy.log(x)返回e為底的對數

numpy.log10(x)返回10為底的對數

numpy.log2(x)返回2為底的對數

統計函式:

numpy.min(a[, axis]) /numpy.amin(a[, axis]) 用於計算陣列中的元素沿指定軸的最小值。

numpy.max(a[, axis]) /numpy.amax(a[, axis]) 用於計算陣列中的元素沿指定軸的最大值。

numpy.ptp(a[, axis]) 用於計算陣列中元素最大值與最小值的差(最大值 - 最小值)。

numpy.percentile(a, q, axis,keepdims=False)用於計算百分位數為p的值。

a: 輸入陣列,q: 要計算的百分位數,在 0 ~ 100 之間,axis: 沿著它計算百分位數的軸,keepdims:是否保持維度不變

numpy.median(a[, axis]) 用於計算陣列中元素的中位數(中值)。

numpy.mean(a[, axis]) 用於計算陣列中元素的算術平均值。

numpy.average(a, axis, weights, returned = False))函式根據在另一個數組中給出的各自的權重計算陣列中元素的加權平均值。

a: 輸入陣列, axis: 沿著它計算的軸, weights:權重陣列,若無,同mean(), returned:是否返回權重的和

numpy.prod(a, axis, dtype, keepdims)返回指定軸上的陣列元素的乘積。

numpy.sum(a, axis, dtype, keepdims)返回指定軸上的陣列元素的總和。

numpy.nanprod(a, axis, dtype, keepdims)返回指定軸上的陣列元素的乘積, 將 NaN 視作 1。

numpy.nansum(a, axis, dtype, keepdims)返回指定軸上的陣列元素的總和, 將 NaN 視作 0。

numpy.cumprod(a, axis, dtype)返回沿給定軸的元素的累積乘積。

numpy.cumsum(a, axis, dtype)返回沿給定軸的元素的累積總和。

numpy.nancumprod(a, axis, dtype)返回沿給定軸的元素的累積乘積, 將 NaN 視作 1。

numpy.nancumsum(a, axis, dtype)返回沿給定軸的元素的累積總和, 將 NaN 視作 0。

numpy.gradient()返回 N 維陣列的梯度。

numpy.std(a)用於計算陣列中元素的標準差。

標準差是一組資料平均值分散程度的一種度量。標準差是方差的算術平方根。std = sqrt(mean((x - x.mean())**2))

numpy.var(a)用於計算陣列中元素的方差。

方差是每個樣本值與全體樣本值的平均數之差的平方值的平均數,var =mean((x - x.mean())** 2)