国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

關于Python Numpy array 的axis 的用法的總結

2019-11-08 02:56:47
字體:
來源:轉載
供稿:網友

我自己學習numpy已經很長時間了, 但一直搞不懂它array里面axis的用法 經常就是自己試一下看看axis=0 或者 axis=1 的時候會怎么樣 然后再用到代碼里面, 比如:

首先導入numpy和創建一個array

>>> import numpy as np>>> a = np.array([[1,2],[10,20]])>>> aarray([[ 1, 2], [10, 20]])

試試看當axis=0的時候平均值的輸出:

>>> a.mean(axis=0)array([ 5.5, 11. ])

aixs=1的時候平均值的輸出:

>>> a.mean(axis=1)array([ 1.5, 15. ])

看似規律就是axis=0時是按照來求平均而當axis=1時是按照來求平均值的。 但是這種方法很難應用到高維的array中去:

>>> b = np.array([[[1,2,3],[4,5,6],[7,8,9]]])>>> barray([[[1, 2, 3], [4, 5, 6], [7, 8, 9]]])>>> b.shape(1, 3, 3)>>> b.mean(axis=0)array([[ 1., 2., 3.], [ 4., 5., 6.], [ 7., 8., 9.]])>>> b.mean(axis=1)array([[ 4., 5., 6.]])

可以看出當數組的形狀為(1,3,3) axis=1時并不是按照行來求平均值的, 而且axis=0時的結果就是形狀為(3,3) 數值就是它本身的數組。 以上我們就可以總結出:

axis的數值是和數組的形狀有關的。如果axis=0, 則就按照最外面的那層array計算平均值; 如果axis=1, 則就按倒數第二層的array計算平均值, 以此類推。那么我們就可以推導:既然上面的b數組是三維的形狀(1,3,3) 那么就有axis=2,而且結果就是最里面那3行每行的平均值:>>> b.mean(axis=2)array([[ 2., 5., 8.]])

但是由于b只有三維(python從0開始index形狀), 當我們用axis=3時,就會有錯誤:

>>> b.mean(axis=3)Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/jinjunjie/anaconda/lib/python2.7/site-packages/numpy/core/_methods.py", line 56, in _mean rcount = _count_reduce_items(arr, axis) File "/Users/jinjunjie/anaconda/lib/python2.7/site-packages/numpy/core/_methods.py", line 50, in _count_reduce_items items *= arr.shape[ax]IndexError: tuple index out of range

英文還可以的同學看看這個和這個應該會有更深刻的理解.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延庆县| 南郑县| 康平县| 木里| 绿春县| 托克逊县| 含山县| 腾冲县| 江安县| 临江市| 吴旗县| 讷河市| 莫力| 莲花县| 兖州市| 满城县| 芦溪县| 襄汾县| 宁武县| 满洲里市| 麻阳| 金乡县| 维西| 隆子县| 莆田市| 张家川| 呼玛县| 简阳市| 承德县| 福鼎市| 徐水县| 金湖县| 永丰县| 获嘉县| 紫金县| 花垣县| 赞皇县| 娄底市| 丹凤县| 榆树市| 乐业县|