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 的參考。

另請參閱

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