Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Đánh giá chuỗi Legendre 3D trên tích Descartes của x, y, z với mảng hệ số 4D trong Python


Để đánh giá một chuỗi Legendre 3D trên tích Descartes của x, y và z, hãy sử dụng phương thức polynomial.legendre.leggrid3d() trong NumPy Python. Phương thức này trả về giá trị của chuỗi Legendre ba chiều tại các điểm trong tích Descartes của x, y và z. Nếu mảng hệ số c có ít hơn ba chiều, các chiều một sẽ được thêm ngầm vào hình dạng của nó để biến thành 3-D. Hình dạng của kết quả sẽ là c.shape[3:] + x.shape + y.shape + z.shape.

Tham số

  • x, y, z: Chuỗi ba chiều được đánh giá tại các điểm trong tích Descartes của x, y và z. Nếu x hoặc y là danh sách hoặc tuple, nó sẽ được chuyển đổi thành ndarray trước, ngược lại sẽ giữ nguyên và nếu không phải ndarray, được xem như một vô hướng.
  • c: Mảng hệ số được sắp xếp sao cho hệ số của hạng tử bậc đa i,j chứa trong c[i,j]. Nếu c có chiều lớn hơn hai, các chỉ số còn lại liệt kê nhiều bộ hệ số.

Các bước thực hiện

Trước tiên, nhập thư viện cần thiết:

import numpy as np
from numpy.polynomial import legendre as L

Tạo mảng hệ số 4D:

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

Hiển thị mảng:

print("Mảng của chúng ta...\n", c)

Kiểm tra số chiều:

print("\nSố chiều của mảng...\n", c.ndim)

Lấy kiểu dữ liệu:

print("\nKiểu dữ liệu của đối tượng mảng...\n", c.dtype)

Lấy hình dạng:

print("\nHình dạng của đối tượng mảng...\n", c.shape)

Đánh giá chuỗi Legendre 3D trên tích Descartes của x, y, z:

print("\nKết quả...\n", L.leggrid3d([1, 2], [1, 2], [1, 2], c))

Ví dụ hoàn chỉnh

import numpy as np
from numpy.polynomial import legendre as L

# Tạo mảng hệ số 4D
c = np.arange(48).reshape(2, 2, 6, 2)

# Hiển thị mảng
print("Mảng của chúng ta...\n", c)

# Kiểm tra số chiều
print("\nSố chiều của mảng...\n", c.ndim)

# Lấy kiểu dữ liệu
print("\nKiểu dữ liệu của đối tượng mảng...\n", c.dtype)

# Lấy hình dạng
print("\nHình dạng của đối tượng mảng...\n", c.shape)

# Đánh giá chuỗi Legendre 3D trên tích Descartes của x, y, z
print("\nKết quả...\n", L.leggrid3d([1, 2], [1, 2], [1, 2], c))

Kết quả đầu ra

Mảng của chúng ta...
 [[[[ 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]]]]
Số chiều của mảng... 4
Kiểu dữ liệu của đối tượng mảng... int64
Hình dạng của đối tượng mảng... (2, 2, 6, 2)
Kết quả...
 [[[[  552.   28911. ]
   [  900.   46566. ]]

  [[  972.   49765.5]
   [ 1566.   79447.5]]]

 [[[  576.   29977.5]
   [  936.   48165.75]]

  [[ 1008.   51365.25]
   [ 1620.   81847.125]]]]