日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Numpy 统计变量(平均值、标准差、方差、最大、最小、和、乘积、对角线和)

發布時間:2023/11/27 生活经验 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Numpy 统计变量(平均值、标准差、方差、最大、最小、和、乘积、对角线和) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. reshape

reshape 后的數組,僅僅是原來數組的視圖 view ,并沒有發生復制元素的行為,這樣才能保證 reshape 操作更為高效。

In [1]: import numpy as npIn [2]: a = np.arange(10)In [3]: a
Out[3]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])In [4]: b = a.reshape(2,5)In [5]: b
Out[5]: 
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [6]: a[0] = 10In [7]: a
Out[7]: array([10,  1,  2,  3,  4,  5,  6,  7,  8,  9])In [8]: b
Out[8]: 
array([[10,  1,  2,  3,  4],[ 5,  6,  7,  8,  9]])In [9]: 

可以看出,在經過 reshape 操作之后,改變 a 中的第一個元素, b 也會跟著改變。

2. 元素級操作

NumPy 中兩個數組加減乘除等,默認都是對應元素的操作:

In [9]: a = np.arange(5)In [10]: a
Out[10]: array([0, 1, 2, 3, 4])In [11]: a+2
Out[11]: array([2, 3, 4, 5, 6])In [12]: 

執行 a+2 之后 a 中的每個元素都被加 2。

In [12]: a
Out[12]: array([0, 1, 2, 3, 4])In [13]: a * a
Out[13]: array([ 0,  1,  4,  9, 16])In [14]: 

執行 a * a 時,注意是按照元素逐個相乘。

3. 矩陣運算

線性代數中,矩陣的乘法操作在 NumPy 中實現有兩種方法:

  • 使用 dot 函數;
  • 轉化為 matrix 對象。

使用 dot 函數

In [14]: a 
Out[14]: array([0, 1, 2, 3, 4])In [15]: b = np.random.randint(1, 10, (5,2))In [16]: b
Out[16]: 
array([[7, 5],[8, 9],[2, 4],[5, 9],[3, 2]])In [17]: np.dot(a, b)
Out[17]: array([39, 52])In [18]: 

另一種方法,將 a 和 b 分別轉化為 matrix 對象:

In [18]: np.matrix(a) * np.matrix(b)
Out[18]: matrix([[39, 52]])In [19]: 

因為 a 是一個 15 維的數組,而 b 是一個 52 維的數組,所以得出的結果是個 1*2 的數組。

4. 統計變量

4.1 求平均值

In [22]: m = np.arange(5)In [23]: m
Out[23]: array([0, 1, 2, 3, 4])In [24]: m.mean()
Out[24]: 2.0In [25]: m.sum()
Out[25]: 10In [26]: 

若想求某一維度的平均值,設置 axis 參數,求 axis 等于 1 的平均值:

In [28]: m =np.random.randint(1, 10,(2,5))In [29]: m
Out[29]: 
array([[4, 6, 8, 9, 8],[6, 9, 6, 6, 9]])In [30]: m.mean(axis=1)
Out[30]: array([7. , 7.2])In [31]: (4+6+8+9+8)/5.0
Out[31]: 7.0In [32]: (6+9+6+6+9)/5.0
Out[32]: 7.2In [33]: 

4.2 求標準差

如下,分別求所有元素的標準差、某一維度上的標準差:

In [35]: m.std()
Out[35]: 1.6401219466856725In [36]: m.std(axis=1)
Out[36]: array([1.78885438, 1.46969385])In [37]: 

4.3 求方差

如下,分別求所有元素的方差、某一維度上的方差:

In [38]: m.var()
Out[38]: 2.69In [39]: m.var(axis=1)
Out[39]: array([3.2 , 2.16])In [40]: 

4.4 求最大值

如下,分別求所有元素的最大值、某一維度上的最大值:

In [40]: m.max()
Out[40]: 9In [41]: m.max(axis=1)
Out[41]: array([9, 9])In [42]: 

4.5 求最小值

如下,分別求所有元素的最小值、某一維度上的最小值:

In [42]: m.min()
Out[42]: 4In [43]: m.min(axis=1)
Out[43]: array([4, 6])In [44]: 

4.6 求和

如下,分別求所有維度上元素的和、某一維度上的元素和:

In [44]: m.sum()
Out[44]: 71In [45]: m.sum(axis=1)
Out[45]: array([35, 36])In [46]: 

4.7 求累乘

如下,分別求所有維度上元素的累乘、某一維度上的累乘:

In [46]: m
Out[46]: 
array([[4, 6, 8, 9, 8],[6, 9, 6, 6, 9]])In [47]: m.cumprod()
Out[47]: 
array([        4,        24,       192,      1728,     13824,     82944,746496,   4478976,  26873856, 241864704], dtype=int32)In [48]: m.cumprod(axis=1)
Out[48]: 
array([[    4,    24,   192,  1728, 13824],[    6,    54,   324,  1944, 17496]], dtype=int32)In [49]: 

4.8 求累和

如下,分別求所有維度上元素的累加和、某一維度上的累加和:

In [49]: m
Out[49]: 
array([[4, 6, 8, 9, 8],[6, 9, 6, 6, 9]])In [50]: m.cumsum()
Out[50]: array([ 4, 10, 18, 27, 35, 41, 50, 56, 62, 71], dtype=int32)In [51]: m.cumsum(axis=1)
Out[51]: 
array([[ 4, 10, 18, 27, 35],[ 6, 15, 21, 27, 36]], dtype=int32)In [52]: 

4.9 對角線上元素的和

In [54]: m = np.random.randint(1,10,(4,4))In [55]: m
Out[55]: 
array([[6, 6, 4, 6],[8, 4, 9, 3],[8, 4, 3, 1],[2, 6, 6, 7]])In [56]: m.trace()
Out[56]: 20In [57]: 

總結

以上是生活随笔為你收集整理的Numpy 统计变量(平均值、标准差、方差、最大、最小、和、乘积、对角线和)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。