Evaluate a 3-D polynomial at points (x, y, z) with 4D array of coefficient in Python

To evaluate a 3-D polynomial at points (x, y, z), use the polynomial.polyval3d() method in Python Numpy. The method returns the values of the multidimensional polynomial on points formed with triples of corresponding values from x, y, and z. The parameters are x, y, z. The three dimensional series is evaluated at the points (x, y, z), where x, y, and z must have the same shape. If any of x, y, or z is a list or tuple, it is first converted to an ndarray, otherwise it is left unchanged and if it isn’t an ndarray it is treated as a scalar.

The parameter c, is an array of coefficients ordered so that the coefficient of the term of multidegree i,j,k is contained in c[i,j,k]. If c has dimension greater than 3 the remaining indices enumerate multiple sets of coefficients. If c has fewer than 3 dimensions, ones are implicitly appended to its shape to make it 3-D. The shape of the result will be c.shape[3:] + x.shape.

Steps

At first, import the required library −

import numpy as np
from numpy.polynomial.polynomial import polyval3d

Create a 4d array of coefficients −

c = np.arange(48).reshape(2,2,6,2)

Display the array −

print("Our Array...\n",c)

Check the Dimensions −

print("\nDimensions of our Array...\n",c.ndim)

Get the Datatype −

print("\nDatatype of our Array object...\n",c.dtype)

Get the Shape −

print("\nShape of our Array object...\n",c.shape)

To evaluate a 3-D polynomial at points (x, y, z), use the polynomial.polyval3d() method. The method returns the values of the multidimensional polynomial on points formed with triples of corresponding values from x, y, and z −

print("\nResult...\n",polyval3d([1,2],[1,2],[1,2], c))

Example

import numpy as np
from numpy.polynomial.polynomial import polyval3d

# Create a 4d array of coefficients
c = np.arange(48).reshape(2,2,6,2)

# Display the array
print("Our Array...\n",c)

# Check the Dimensions
print("\nDimensions of our Array...\n",c.ndim)

# Get the Datatype
print("\nDatatype of our Array object...\n",c.dtype)

# Get the Shape
print("\nShape of our Array object...\n",c.shape)

# To evaluate a 3-D polynomial at points (x, y, z), use the polynomial.polyval3d() method in Python Numpy
print("\nResult...\n",polyval3d([1,2],[1,2],[1,2], c))

Output

Our Array...
[[[[ 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 27]
[28 29]
[30 31]
[32 33]
[34 35]]

[[36 37]
[38 39]
[40 41]
[42 43]
[44 45]
[46 47]]]]

Dimensions of our Array...
4

Datatype of our Array object...
int64

Shape of our Array object...
(2, 2, 6, 2)

Result...
[[ 552. 18252.]
[ 576. 18819.]]