如何在X处评估多项式和系数的形状 NumPy数组为每个维度进行扩展

  • Post category:Python

首先,我们需要导入NumPy库:

import numpy as np

完整攻略

  1. 要评估多项式,我们可以使用NumPy的polyval函数,该函数接受两个参数:多项式系数和自变量的值。我们可以使用NumPy的一维数组来表示多项式系数。例如,这是一个3次多项式:
p_coefficients = np.array([2, 1, 4, 3])
  1. 要扩展多项式系数或自变量的维度,我们可以使用NumPy的reshape函数或.newaxis属性。具体如下:

  2. reshape: 根据指定的维度大小,返回具有相同数据的新数组。例如,如果我们想将p_coefficients数组扩展为形状(2, 2, 2),则可以使用以下命令:

p_coefficients_reshaped = p_coefficients.reshape((2, 2, 2))  # 3D 多项式系数
  • newaxis: 该属性用于插入一个新维度。例如,如果我们想将一维自变量的形状(5,)扩展为(5, 1),则可以使用以下命令:
x = np.array([1, 2, 3, 4, 5])
x_expanded = x[:, np.newaxis]  # 2D 自变量
  1. 将扩展后的数组作为参数传递给polyval函数,即可使用多项式系数和自变量计算多项式值。例如,以下示例演示了如何计算2D多项式:
# 2D 多项式系数
p_coefficients_2D = np.array([[2, 1, 4], [1, 2, 3]])

# 2D 自变量
x = np.array([[-1, 0, 1], [1, 2, 3]])

# 计算2D多项式
p_values = np.polyval(p_coefficients_2D, x)

在上面的示例中,p_values数组包含了p_coefficients_2D定义的2D多项式在给定x自变量时的计算结果。

  1. 另一个示例,演示如何扩展一维自变量和多项式系数的维度,然后对它们进行多维多项式计算:
# 1D 多项式系数
p_coefficients = np.array([2, 1, 4, 3])

# 1D 自变量
x = np.array([1, 2, 3])

# 将维度扩展为2D
p_coefficients_expanded = p_coefficients[np.newaxis, :]
x_expanded = x[:, np.newaxis]

# 计算2D多项式
p_values = np.polyval(p_coefficients_expanded, x_expanded)

在上面的示例中,我们分别使用newaxis将1D自变量和多项式系数扩展为2D,然后使用polyval函数计算2D多项式值。p_values数组包含了1D多项式在扩展后的2D自变量上的计算结果。

总结

使用polyval函数,我们可以快速、简单地计算多项式在给定自变量处的值。使用reshape函数或newaxis属性,我们可以扩展多项式系数或自变量的维度,以实现多维多项式计算。