numpy.sum()的使用詳解
numpy的sum函數可接受的參數是:
sum(a, axis=None, dtype=None, out=None, keepdims=np._NoValue)
在參數列表中:
a是要進行加法運算的向量/數組/矩陣
axis的值可以為None,也可以為整數和元組
其形參的註釋如下:
a : array_like elements to sum.
a:用於進行加法運算的數組形式的元素
axis : None or int or tuple of ints, optional
Axis or axes along which a sum is performed.
The default, axis=None, will sum all of the elements of the input array.
If axis is negative it counts from the last to the first axis.
If axis is a tuple of ints, a sum is performed on all of the axes
specified in the tuple instead of a single axis or all the axes as before.
根據上文,可知:
axis的取值有三種情況:1.None,2.整數, 3.整數元組。
(在默認/缺省的情況下,axis取None)
如果axis取None,即將數組/矩陣中的元素全部加起來,得到一個和。
Example:
>>> np.sum([0.5, 1.5]) 2.0 >>> np.sum([0.5, 0.7, 0.2, 1.5], dtype=np.int32) 1 >>> np.sum([[0, 1], [0, 5]]) 6
如果axis為整數,axis的取值不可大於數組/矩陣的維度,且axis的不同取值會產生不同的結果。
先以2×2的二維矩陣為例:
>>> np.sum([[0, 1], [0, 5]], axis=0) array([0, 6]) >>> np.sum([[0, 1], [0, 5]], axis=1) array([1, 5])
在上述例子中
- 當axis為0時,是壓縮行,即將每一列的元素相加,將矩陣壓縮為一行
- 當axis為1時,是壓縮列,即將每一行的元素相加,將矩陣壓縮為一列(這裡的一列是為瞭方便理解說的,實際上,在控制臺的輸出中,仍然是以一行的形式輸出的)
具體理解如圖:
- 當axis取負數的時候,對於二維矩陣,隻能取-1和-2(不可超過矩陣的維度)。
- 當axis=-1時,相當於axis=1的效果,當axis=-2時,相當於axis=0的效果。
如果axis為整數元組(x,y),則是求出axis=x和axis=y情況下得到的和。
繼續以上面的2×2矩陣為例
>>>np.sum([[0,1],[0,5]],axis=(0,1)) >>>6 >>>np.sum([[0,1],[0,5]],axis=(1,0)) >>>6
另外,需要註意的是:如果要輸入兩個數組/矩陣/向量進行相加,那麼就要先把兩個數組/矩陣/向量用一個括號括起來,形成一個元組,這樣才能夠進行相加。因為numpy.sum的運算實現本質是通過矩陣內部的運算實現的。
當然,如果隻是向量/數組之間做加法運算,可以直接讓兩個向量/數組相加,但前提是它們必須為numpy的array數組才可以,否則隻是單純的列表相加
Example:
>>>v1 = [1, 2] >>>v2 = [3, 4] >>>v1 + v2 [1, 2, 3, 4] >>>v1 = numpy.array[1, 2] >>>v2 = numpy.array[3, 4] >>>v1 + v2 [4, 6]
到此這篇關於numpy.sum()的使用詳解的文章就介紹到這瞭,更多相關numpy.sum()使用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python NumPy教程之數組的基本操作詳解
- 淺談numpy.where() 的用法和np.argsort()的用法說明
- numpy中數組拼接、數組合並方法總結(append(), concatenate, hstack, vstack, column_stack, row_stack, np.r_, np.c_等)
- 如何獲取numpy array前N個最大值
- numpy的squeeze函數使用方法