python sum函数numpy_解决Numpy中sum函数求和结果维度的问题
使用Numpy(下面簡稱np)中的sum函數對某一維度求和時,由于該維度會在求和后變成一個數,所以所得結果的這一維度為空。
比如下面的例子:
a = np.array([[1,2,3],[4,5,6]])
b = np.sum(a,axis=1)
print(b.shape)
# (2,)
所以,對于一個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函數求和結果維度的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持python博客。
總結
以上是生活随笔為你收集整理的python sum函数numpy_解决Numpy中sum函数求和结果维度的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 16 年前的今天,乔布斯发布了初代苹果
- 下一篇: python visa模块_已经安装了p