在 Numpy 中沿给定轴对多维数组进行归约

numpyserver side programmingprogramming更新于 2025/9/3 4:52:17

要对多维数组进行归约,请使用 Python Numpy 中的 np.ufunc.reduce() 方法。这里我们使用 multiply.reduce() 将其归约成元素的乘法。轴使用"axis"参数设置。归约所沿的一个或多个轴

numpy.ufunc 包含对整个数组逐个元素进行操作的函数。这些 ufunc 是用 C 语言编写的(为了提高速度),并通过 NumPy 的 ufunc 功能链接到 Python 中。通用函数(简称 ufunc)是一种以逐个元素的方式对 ndarray 进行操作的函数,支持数组广播、类型转换和其他一些标准特性。也就是说,ufunc 是一个"矢量化的"用于接受固定数量的特定输入并产生固定数量的特定输出的函数的包装器。

步骤

首先,导入所需的库 −

import numpy as np

创建多维数组−

arr = np.arange(27).reshape((3,3,3))

显示数组 −

print("数组...
", arr)

获取数组的类型 −

print("
我们的数组类型...
", arr.dtype)

获取数组的维度 −

print("
我们的数组维度...
",arr.ndim)

要对多维数组进行归约,请使用 Python Numpy 中的 np.ufunc.reduce() 方法。这里我们使用 multiply.reduce() 将其归约成元素的乘法。轴使用"axis"参数设置。归约所沿的一个或多个轴−

print("
结果(乘法)...
",np.multiply.reduce(arr, axis = 0))

要简化多维数组,请使用 Python Numpy 中的 np.ufunc.reduce() 方法。这里我们使用 add.reduce() 将其简化为元素的加法。使用"axis"参数设置轴。执行缩减的轴 −

print("
结果(加法)...
",np.add.reduce(arr, axis = 0))

示例

import numpy as np

# numpy.ufunc 函数可以对整个数组逐个元素进行操作。
# ufunc 函数用 C 语言编写(以提高速度),并通过 NumPy 的 ufunc 功能链接到 Python。

# 创建多维数组
arr = np.arange(27).reshape((3,3,3))

# 显示数组
print("数组...
", arr) # 获取数组的类型 print("
我们的数组类型...
", arr.dtype) # 获取数组的维度 print("
我们的数组维度...
",arr.ndim) # 要对多维数组进行归约,请使用 Python Numpy 中的 np.ufunc.reduce() 方法 # 这里,我们使用 multiply.reduce() 将其归约成元素乘法 # 使用 "axis" 参数设置轴 # 执行归约的轴 print("
结果(乘法)...
",np.multiply.reduce(arr, axis = 0)) # 要对多维数组进行归约,请使用 Python Numpy 中的 np.ufunc.reduce() 方法 # 这里,我们使用 add.reduce() 将其归约成元素加法 # 使用 "axis" 参数设置轴 # 执行归约的轴 print("
结果(加法)...
",np.add.reduce(arr, axis = 0))

输出

数组...
[[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]]

[[ 9 10 11]
[12 13 14]
[15 16 17]]

[[18 19 20]
[21 22 23]
[24 25 26]]]

我们的数组类型...
int64

我们的数组维度...
3

结果(乘法)...
[[ 0 190 440]
[ 756 1144 1610]
[2160 2800 3536]]

结果(加法)...
[[27 30 33]
[36 39 42]
[45 48 51]]

相关文章