1. 程式人生 > >ndnarry元素處理

ndnarry元素處理

元素計算函式

  1. ceil(): 向上最接近的整數,引數是 number 或 array

  2. floor(): 向下最接近的整數,引數是 number 或 array

  3. rint(): 四捨五入,引數是 number 或 array
  4. isnan(): 判斷元素是否為 NaN(Not a Number),引數是 number 或 array
  5. multiply(): 元素相乘,引數是 number 或 array
  6. divide(): 元素相除,引數是 number 或 array
  7. abs():元素的絕對值,引數是 number 或 array
  8. where(condition, x, y)
    : 三元運算子,x if condition else y

示例程式碼(1、2、3、4、5、6、7):

# randn() 返回具有標準正態分佈的序列。
arr = np.random.randn(2,3)

print(arr)

print(np.ceil(arr))

print(np.floor(arr))

print(np.rint(arr))

print(np.isnan(arr))

print(np.multiply(arr, arr))

print(np.divide(arr, arr))

print(np.where(arr > 0, 1, -1))

 

執行結果:

# print(arr)
[[-0.75803752  0.0314314   1.15323032]
 [ 1.17567832  0.43641395  0.26288021]]

# print(np.ceil(arr))
[[-0.  1.  2.]
 [ 2.  1.  1.]]

# print(np.floor(arr))
[[-1.  0.  1.]
 [ 1.  0.  0.]]

# print(np.rint(arr))
[[-1.  0.  1.]
 [ 1.  0.  0.]]

# print(np.isnan(arr))
[[False False False]
 [False False False]]

# print(np.multiply(arr, arr)) [[ 5.16284053e+00 1.77170104e+00 3.04027254e-02] [ 5.11465231e-03 3.46109263e+00 1.37512421e-02]] # print(np.divide(arr, arr)) [[ 1. 1. 1.] [ 1. 1. 1.]] # print(np.where(arr > 0, 1, -1)) [[ 1 1 -1] [-1 1 1]]

 

元素統計函式

  1. np.mean()np.sum():所有元素的平均值,所有元素的和,引數是 number 或 array

  2. np.max()np.min():所有元素的最大值,所有元素的最小值,引數是 number 或 array

  3. np.std()np.var():所有元素的標準差,所有元素的方差,引數是 number 或 array
  4. np.argmax()np.argmin():最大值的下標索引值,最小值的下標索引值,引數是 number 或 array
  5. np.cumsum()np.cumprod():返回一個一維陣列,每個元素都是之前所有元素的 累加和 和 累乘積,引數是 number 或 array
  6. 多維陣列預設統計全部維度,axis引數可以按指定軸心統計,值為0則按列統計,值為1則按行統計。

示例程式碼:

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

print(np.cumsum(arr)) # 返回一個一維陣列,每個元素都是之前所有元素的 累加和

print(np.sum(arr)) # 所有元素的和

print(np.sum(arr, axis=0)) # 陣列的按列統計和

print(np.sum(arr, axis=1)) # 陣列的按行統計和

 

執行結果:

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

# print(np.cumsum(arr)) 
[ 0  1  3  6 10 15 21 28 36 45 55 66]

# print(np.sum(arr)) # 所有元素的和
66

# print(np.sum(arr, axis=0)) # 0表示對陣列的每一列的統計和
[12 15 18 21]

# print(np.sum(arr, axis=1)) # 1表示陣列的每一行的統計和
[ 6 22 38]

 

元素判斷函式

  1. np.any(): 至少有一個元素滿足指定條件,返回True
  2. np.all(): 所有的元素滿足指定條件,返回True

示例程式碼:

arr = np.random.randn(2,3)
print(arr)

print(np.any(arr > 0))
print(np.all(arr > 0))

 

執行結果:

[[ 0.05075769 -1.31919688 -1.80636984]
 [-1.29317016 -1.3336612  -0.19316432]]

True
False

 

元素去重排序函式

np.unique():找到唯一值並返回排序結果,類似於Python的set集合

示例程式碼:

arr = np.array([[1, 2, 1], [2, 3, 4]])
print(arr)

print(np.unique(arr))

 

執行結果:

[[1 2 1]
 [2 3 4]]

[1 2 3 4]