numpy.prod#
- numpy.prod(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)[原始碼]#
傳回指定軸上陣列元素的乘積。
- 參數:
- aarray_like
輸入資料。
- axisNone 或 int 或 int 元組,選用
執行乘積運算的軸或軸。預設值 axis=None 將計算輸入陣列中所有元素的乘積。如果 axis 為負值,則從最後一個軸向第一個軸計數。
如果 axis 是 int 元組,則會在元組中指定的所有軸上執行乘積運算,而不是像之前一樣在單一軸或所有軸上執行。
- dtypedtype,選用
傳回陣列的類型,以及元素相乘時累加器的類型。a 的 dtype 預設會使用,除非 a 具有比預設平台整數更低精度的整數 dtype。在這種情況下,如果 a 是有號整數,則使用平台整數,而如果 a 是無號整數,則使用與平台整數相同精度的無號整數。
- outndarray,選用
要在其中放置結果的替代輸出陣列。它必須具有與預期輸出相同的形狀,但如果需要,將會轉換輸出值的類型。
- keepdimsbool,選用
如果設定為 True,則縮減的軸會保留在結果中,作為大小為 1 的維度。使用此選項,結果將會正確地與輸入陣列進行廣播。
如果傳遞預設值,則 keepdims 將不會傳遞到
prod
方法的ndarray
子類別,但是任何非預設值都會傳遞。如果子類別的方法未實作 keepdims,則會引發任何例外。- initial純量,選用
此乘積的起始值。請參閱
reduce
以取得詳細資訊。- wherebool 的 array_like,選用
要包含在乘積中的元素。請參閱
reduce
以取得詳細資訊。
- 傳回值:
- product_along_axisndarray,請參閱上方的
dtype
參數。 一個形狀與 a 相同,但已移除指定軸的陣列。如果指定了 out,則傳回 out 的參考。
- product_along_axisndarray,請參閱上方的
另請參閱
ndarray.prod
等效方法
- 輸出類型判斷
附註
使用整數類型時,算術是模組化的,並且不會在溢位時引發錯誤。這表示在 32 位元平台上
>>> x = np.array([536870910, 536870910, 536870910, 536870910]) >>> np.prod(x) 16 # may vary
空陣列的乘積是中性元素 1
>>> np.prod([]) 1.0
範例
預設情況下,計算所有元素的乘積
>>> import numpy as np >>> np.prod([1.,2.]) 2.0
即使輸入陣列是二維的
>>> a = np.array([[1., 2.], [3., 4.]]) >>> np.prod(a) 24.0
但我們也可以指定要相乘的軸
>>> np.prod(a, axis=1) array([ 2., 12.]) >>> np.prod(a, axis=0) array([3., 8.])
或選擇要包含的特定元素
>>> np.prod([1., np.nan, 3.], where=[True, False, True]) 3.0
如果 x 的類型是無號整數,則輸出類型是無號平台整數
>>> x = np.array([1, 2, 3], dtype=np.uint8) >>> np.prod(x).dtype == np.uint True
如果 x 是有號整數類型,則輸出類型是預設平台整數
>>> x = np.array([1, 2, 3], dtype=np.int8) >>> np.prod(x).dtype == int True
您也可以使用非 1 的值開始乘積
>>> np.prod([1, 2], initial=5) 10