這篇文章主要介紹“numpy多維數(shù)組執(zhí)行sum計(jì)算時(shí)axis參數(shù)的意義是什么”,在日常操作中,相信很多人在numpy多維數(shù)組執(zhí)行sum計(jì)算時(shí)axis參數(shù)的意義是什么問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”numpy多維數(shù)組執(zhí)行sum計(jì)算時(shí)axis參數(shù)的意義是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司專注于鄂托克企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),購(gòu)物商城網(wǎng)站建設(shè)。鄂托克網(wǎng)站建設(shè)公司,為鄂托克等地區(qū)提供建站服務(wù)。全流程按需求定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
axis參數(shù),表面意思是數(shù)軸,官網(wǎng)解釋為“Axis or axes along which a sum is performed. 沿其執(zhí)行求和的軸。”
我認(rèn)為說了跟沒說一樣,怎么個(gè)沿其求和法?
對(duì)于二位數(shù)組,我們可以簡(jiǎn)單的記為axis=0是按列加和,axis=1是按行加和。
對(duì)于更多維度數(shù)組呢?axis是元組的情況呢?
看代碼:
import numpy as np n = np.array( [[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[2, 4, 6], [8, 10, 12], [14, 16, 18]], [[1, 3, 5], [7, 9, 11], [13, 15, 17]]]) print(n) print("============ sum axis=None=============") sum = 0 for i in range(3): for j in range(3): for k in range(3): sum += n[k][i][j] print(sum) # 216 print('------------------') print(np.sum(n)) # 216 print("============ sum axis=0 =============") for i in range(3): for j in range(3): sum = 0 for axis in range(3): sum += n[axis][i][j] print(sum,end=' ') print() print('------------------') print("sum[0][0] = %d" % (n[0][0][0] + n[1][0][0] + n[2][0][0])) print("sum[1][1] = %d" % (n[0][1][1] + n[1][1][1] + n[2][1][1])) print("sum[2][2] = %d" % (n[0][2][2] + n[1][2][2] + n[2][2][2])) print('------------------') print(np.sum(n, axis=0)) print("============ sum axis=1 =============") for i in range(3): for j in range(3): sum = 0 for axis in range(3): sum += n[i][axis][j] print(sum,end=' ') print() print('------------------') print("sum[0][0] = %d" % (n[0][0][0] + n[0][1][0] + n[0][2][0])) print("sum[1][1] = %d" % (n[1][0][1] + n[1][1][1] + n[1][2][1])) print("sum[2][2] = %d" % (n[2][0][2] + n[2][1][2] + n[2][2][2])) print('------------------') print(np.sum(n, axis=1)) print("============ sum axis=2 =============") for i in range(3): for j in range(3): sum = 0 for axis in range(3): sum += n[i][j][axis] print(sum,end=' ') print() print('------------------') print("sum[0][0] = %d" % (n[0][0][0] + n[0][0][1] + n[0][0][2])) print("sum[1][1] = %d" % (n[1][1][0] + n[1][1][1] + n[1][1][2])) print("sum[2][2] = %d" % (n[2][2][0] + n[2][2][1] + n[2][2][2])) print('------------------') print(np.sum(n, axis=2)) print("============ sum axis=(0,1)) =============") for i in range(3): sum = 0 for axis1 in range(3): for axis2 in range(3): sum += n[axis1][axis2][i] print(sum,end=' ') print() print('------------------') print("sum[1] = %d" % (n[0][0][1] + n[0][1][1] + n[0][2][1] + n[1][0][1] + n[1][1][1] + n[1][2][1] + n[2][0][1] + n[2][1][1] + n[2][2][1] )) print('------------------') print(np.sum(n, axis=(0,1)))
輸出:
[[[ 1 2 3] [ 4 5 6] [ 7 8 9]] [[ 2 4 6] [ 8 10 12] [14 16 18]] [[ 1 3 5] [ 7 9 11] [13 15 17]]] ============ sum axis=None============= 216 ------------------ 216 ============ sum axis=0 ============= 4 9 14 19 24 29 34 39 44 ------------------ sum[0][0] = 4 sum[1][1] = 24 sum[2][2] = 44 ------------------ [[ 4 9 14] [19 24 29] [34 39 44]] ============ sum axis=1 ============= 12 15 18 24 30 36 21 27 33 ------------------ sum[0][0] = 12 sum[1][1] = 30 sum[2][2] = 33 ------------------ [[12 15 18] [24 30 36] [21 27 33]] ============ sum axis=2 ============= 6 15 24 12 30 48 9 27 45 ------------------ sum[0][0] = 6 sum[1][1] = 30 sum[2][2] = 45 ------------------ [[ 6 15 24] [12 30 48] [ 9 27 45]] ============ sum axis=(0,1)) ============= 57 72 87 ------------------ sum[1] = 72 ------------------ [57 72 87]
如果你看懂了代碼和輸出,我想你已經(jīng)明白了。
最后用很差的語文能力描述下吧:
原數(shù)組是N維,axis指定的數(shù)軸將會(huì)降維(有幾個(gè)軸就降幾維),剩余的維度數(shù)組就是結(jié)果數(shù)組,結(jié)果數(shù)組的每個(gè)元素的值=結(jié)果座標(biāo)固定,axis指定的維度遍歷加和。
比如5維數(shù)組 n[i][j][k][x][y] axis =(1,3) 那么 結(jié)果數(shù)組就是3維的,其元素 r[i][k][y] = i,k,y 固定,j,x 遍歷的加和
到此,關(guān)于“numpy多維數(shù)組執(zhí)行sum計(jì)算時(shí)axis參數(shù)的意義是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!