python数学计算模块_Python-NumPy模块数学和统计方法(4)
1.前言
使用一組數學函數對numpy數組進行操作的時候,有兩種方式計算:對整個數組進行計算;
對源數組的某個軸向的數據進行統計計算;
2.下面是基本的數組統計方法數組統計方法
3.統計函數的分類
下面的所有統計方法,即可以當做數組的實例方法調用,也可以當做頂級numpy函數使用。
import numpy as nparr = np.random.randn(5,4)print(np.xxx(arr))print(arr.xxx())
聚合計算(aggregation,通常叫做約簡(reduction))。而不聚合也就是方法調用返回的結果是一個由中間結果組成的數組。聚合計算的方法
import numpy as np
arr = np.random.randn(5,4)#正太分布數據
print("數組中元素求和:",arr.sum())
print("算術平均數:",arr.mean())
print("標準差和方差:",arr.std(),arr.var())
print("最大值和最小值:",arr.max(),arr.min())
數組中元素求和: -2.84952437344
算術平均數: -0.142476218672
標準差和方差: 0.896244709803 0.803254579849
最大值和最小值: 1.95081773969 -1.87576739314
而cumsum以及cumprod方法就是非聚合方法,他返回的是由中間結果組成的一個數組,這樣說有點不好理解,下面我使用例子來進行說明。
當然還是先從最簡單的二維數組為例說明:
import numpy as np
arr = np.arange(12).reshape(3,4)
print(arr)
print('-----axis = 0-----')
arr_axi0 = np.cumsum(arr,axis = 0)
print(arr_axi0)
print('-----axis = 1-----')
arr_axi1 = np.cumsum(arr,axis = 1)
print(arr_axi1)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
-----axis = 0-----
[[ 0 1 2 3]
[ 4 6 8 10]
[12 15 18 21]]
-----axis = 1-----
[[ 0 1 3 6]
[ 4 9 15 22]
[ 8 17 27 38]]
從我以前的numpy文章中可以知道對于二維數組他的axis的值與行和列之間的關系二維數組的axis
由此我們也可以看出對于二維數組我們的參數axis的值只能是0和1,那么如何去理解非聚合計算的結果由中間值組成的數組呢?axis = 0的時候,知道他是從行的角度去考慮函數,那如果是一般的聚合計算的函數,如sum...他們返回的是一個向量。但是對于非聚合計算的函數,他們返回的數組shape函數原來數組的shape,他們每一行的值都是上一行值與本行值的和(當然如果使用cumprop方法的話就是上一行值與本行值的積)。
axis = 1的時候,其實和axis = 0的一樣,只不過是這里的方向是從列的方向去考慮,也就是shape還和源數組的shape相同,但是其中每一列的值就是本列與上一列的值組成的新列(當然如果使用cumprop方法的話就是上一行值與本行值的積)。
總結
以上是生活随笔為你收集整理的python数学计算模块_Python-NumPy模块数学和统计方法(4)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android layoutparams
- 下一篇: python超市买苹果_官网购买的iPh