在 Python 中返回给定轴上的 N 维数组的梯度

pythonnumpyserver side programmingprogramming

梯度是使用内部点的二阶精确中心差异和边界上的一阶或二阶精确单侧(前向或后向)差异计算得出的。因此,返回的梯度具有与输入数组相同的形状。第一个参数 f 是一个包含标量函数样本的 N 维数组。第二个参数是可变参数,即 f 值之间的间距。所有维度的默认单位间距。

第三个参数是 edge_order{1, 2},即梯度是使用边界上的 N 阶精确差异计算得出的。默认值:1。第四个参数是梯度,仅沿给定的轴计算。默认值(axis = None)是计算输入数组所有轴的梯度。axis 可以为负数,在这种情况下它从最后一个轴计数到第一个轴。该方法返回一个对应于 f 在每个维度上的导数的 ndarray 列表。每个导数具有与 f 相同的形状。

步骤

首先,导入所需的库 −

import numpy as np

使用 array() 方法创建一个 numpy 数组。我们添加了 float 类型的元素 −

arr = np.array([[20, 35, 57], [70, 85, 120]], dtype = float)

显示数组 −

print("我们的数组...\n",arr)

检查维度 −

print("\n数组的维度...\n",arr.ndim)

获取数据类型 −

print("\n我们的数组对象的数据类型...\n",arr.dtype)

梯度是使用内部点的二阶精确中心差异和边界处的一阶或二阶精确单侧(前向或后向)差异来计算的。因此,返回的梯度具有与输入数组相同的形状 −

print("\nResult (gradient)...\n",np.gradient(arr, axis = 0))

示例

import numpy as np

# 使用 array() 方法创建 numpy 数组
# 我们添加了浮点类型的元素
arr = np.array([[20, 35, 57], [70, 85, 120]], dtype = float)

# 显示数组
print("我们的数组...\n",arr)

# 检查维度
print("\n数组的维度...\n",arr.ndim)

# 获取数据类型
print("\n我们的数组对象的数据类型...\n",arr.dtype)

# 梯度是使用内部点的二阶精确中心差异和边界的一阶或二阶精确单侧(前向或后向)差异来计算的。因此,返回的梯度具有与输入数组相同的形状。
print("\nResult (gradient)...\n",np.gradient(arr, axis = 0))

输出

我们的数组...
[[ 20. 35. 57.]
[ 70. 85. 120.]]

我们的数组的维度...
2

我们的数组对象的数据类型...
float64

Result (gradient)...
[[50. 50. 63.]
[50. 50. 63.]]

相关文章