np.prod()

numpy.prod(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)返回给定轴上数组元素的乘积。

参数:

  • a:输入数据。
  • axis:无或整数或整数元组,可选。
    它是执行产品所沿的一个或多个轴。默认轴为“无”,它将计算输入数组中所有元素的乘积。如果轴为负,则从最后一个轴开始计数。
    如果 \(axis\)\(int\) 的元组,那么将在元组中指定的所有轴上执行乘积运算,而不是像以前那样是单个轴或所有轴。
  • dtype:它是返回数组的类型,也是元素与之相乘的累加器的类型。除非 \(a\) 具有小于默认平台整数精度的整数 \(dtype\),否则默认情况下使用 \(a\)\(dtype\)。在这种情况下,如果 \(a\) 是带符号的,则使用平台整数,而如果 \(a\) 是无符号的,则使用与平台整数具有相同精度的无符号整数。
  • out:替代输出数组,用于放置结果。它必须具有与预期输出相同的形状,但是如有必要,将强制转换输出值的类型。
  • keepdims:如果将其设置为 \(True\),则缩小的轴将保留为尺寸 \(1\) 的尺寸。使用此选项,结果将针对输入数组正确广播。
  • initial:指定初始值。
  • where:指定相乘的轴。

示例:

使用整数类型时算术是模块化的,溢出时不会引发错误。这意味着,在 32 位平台上:

import numpy as np

x = np.array([536870910, 536870910, 536870910, 536870910])
print(np.prod(x))
16

空数组的乘积是中性元素 \(1\)

print(np.prod([]))
1.0

默认情况下,计算所有元素的乘积:

print(np.prod([1.,2.]))
2.0

输入数组是二维的:

print(np.prod([[1.,2.],[3.,4.]]))
24.0

可以指定相乘的轴:

print(np.prod([1., np.nan, 3.], where=[True, False, True]))
3.0

如果 \(x\) 的类型是无符号的,则输出类型是无符号平台整数:

x = np.array([1, 2, 3], dtype=np.uint8)
print(np.prod(x).dtype == np.uint)
True

如果 \(x\) 的类型是有符号的,则输出类型是默认平台整数

x = np.array([1, 2, 3], dtype=np.int8)
print(np.prod(x).dtype == int)
True

使用非 1 的值启动产品:

print(np.prod([1, 2], initial=5))
10


posted @ 2022-08-26 11:49  做梦当财神  阅读(227)  评论(0编辑  收藏  举报