使用numpy(下面簡稱np)中的sum函式對某一維度求和時,由於該維度會在求和後變成乙個數,所以所得結果的這一維度為空。
比如下面的例子:
a = np.array([程式設計客棧[1,2,3],[4,5,6]])
b = np.sum(a,axis=1)
print(b.shape)
# (2,)
所www.cppcns.com以,對於乙個shape為(2,3)的陣列,在預設情況下使用np.sum函式求和後得到的結果shape是 (2,),如果我們想得到的是(2,1)的shape怎麼辦?比如ng的深度學習程式設計練習中course 1 assignment 4就要求這樣。使用reshape函式當然可以,只是沒有必要,太麻煩了一點不優雅。我們可以使用通過設定keepdims引數實現,還是這個例子:
a = np.array([[1,2,3],[4,5,6]])
b = np.sum(a,axis=1,keepdims=true)
print(b.shape)
# (2,1)
(2,1)和(2,)的shape之間不同參見 what's the difference between (n,) and (n,1) in numpy? —stackoverflow
這裡有個小例子可以幫助理解:
a = np.ones((5,程式設計客棧))
b = np.ones((5,1))
print(a)
# [1. 1. 1. 1 1.]
print(b程式設計客棧)
# [[1.]
# [1.]
# [1.]
# [1.]
# [1.]]
本文標題: 解決numpy中sum函式求和結果維度的問題
本文位址:
numpy的sum函式 mean函式
sum函式主要為了求矩陣的行 或者列的和。其中用axis這個引數來指定對行還是列求和,當沒有指定axis引數的時候,就會對矩陣所有元素求和。import numpy as np 生成乙個2維矩陣 a range 16 a np.array a a a.reshape 4,4 0 1 2 3 4 5 ...
python求和函式sum 詳解
我本來想算幾個int值相加的和,本以為很簡單的事情,結果卻很悲傷,例 sum sum 1,2,3 結果很明顯出現問題報錯 typeerror sum expected at most 2 arguments,got 3傻乎乎的我以為只能算前兩個數的和等於3,就又試了一下 sum sum 1,2 結果...
numpy中sum 中axis引數的問題
在選定特定的軸後,sum得到的值維度降低一維 axis的值是shape返回元組的索引,比如axis 0 是 最高維度 最外層括號 axis 1 是第二層括號 axis n是最內層括號 axis 1 sum axis n 表示以第n維為主元 以二陣列為例 a np.array 1,2,3,4 5,6,...