Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การประเมินพหุนาม 2 มิติบนผลคูณคาร์ทีเซียนของ x และ y ด้วยสัมประสิทธิ์ 3D ใน Python


บทนำ

เพื่อประเมินพหุนาม 2 มิติบนผลคูณคาร์ทีเซียน (Cartesian product) ของ x และ y ให้ใช้เมธอด polynomial.polygrid2d(x, y, c) ใน Python เมธอดนี้ส่งคืนค่าของพหุนาม 2 มิติที่จุดในผลคูณคาร์ทีเซียนของ x และ y

พารามิเตอร์แรก x และ y พหุนาม 2 มิติถูกประเมินที่จุดในผลคูณคาร์ทีเซียนของ x และ y หาก x หรือ y เป็นรายการหรือทูเพิล จะถูกแปลงเป็น ndarray ก่อน มิฉะนั้นจะปล่อยไว้ كماเดิม และ หากไม่ใช่ ndarray จะถูกถือว่าเป็นสเกลาร์ พารามิเตอร์ที่สอง c คืออาร์เรย์ของสัมประสิทธิ์ที่จัดลำดับเพื่อให้สัมประสิทธิ์สำหรับพจน์ขององศา i,j อยู่ใน c[i,j] หาก c มีมิติมากกว่าสอง ดัชนีที่เหลือจะนับชุดสัมประสิทธิ์หลายชุด

หาก c มีมิติน้อยกว่าสอง จะมีการต่อ ones ไปที่รูปร่างเพื่อทำให้เป็น 2-D รูปร่างของผลลัพธ์จะเป็น c.shape[2:] + x.shape + y.shape

ขั้นตอน

ขั้นแรก ให้นำเข้าไลบรารีที่จำเป็น:

import numpy as np
from numpy.polynomial.polynomial import polygrid2d

สร้างอาร์เรย์สัมประสิทธิ์ 3D:

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

แสดงอาร์เรย์:

print("อาร์เรย์ของเรา...\n", c)

ตรวจสอบมิติ:

print("\nมิติของอาร์เรย์...\n", c.ndim)

ดูชนิดข้อมูล:

print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", c.dtype)

ดูรูปร่าง:

print("\nรูปร่างของออบเจกต์อาร์เรย์...\n", c.shape)

เพื่อประเมินพหุนาม 2 มิติบนผลคูณคาร์ทีเซียนของ x และ y ให้ใช้เมธอด polynomial.polygrid2d(x, y, c) ใน Python เมธอดนี้ส่งคืนค่าของพหุนาม 2 มิติที่จุดในผลคูณคาร์ทีเซียนของ x และ y:

print("\nผลลัพธ์...\n", polygrid2d([1, 2], [1, 2], c))

ตัวอย่างโค้ดสมบูรณ์

import numpy as np
from numpy.polynomial.polynomial import polygrid2d
# สร้างอาร์เรย์สัมประสิทธิ์ 3D
c = np.arange(24).reshape(2, 2, 6)
# แสดงอาร์เรย์
print("อาร์เรย์ของเรา...\n", c)
# ตรวจสอบมิติ
print("\nมิติของอาร์เรย์...\n", c.ndim)
# ดูชนิดข้อมูล
print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", c.dtype)
# ดูรูปร่าง
print("\nรูปร่างของออบเจกต์อาร์เรย์...\n", c.shape)
# เพื่อประเมินพหุนาม 2 มิติบนผลคูณคาร์ทีเซียนของ x และ y ใช้ polynomial.polygrid2d(x, y, c) ใน Python
print("\nผลลัพธ์...\n", polygrid2d([1, 2], [1, 2], c))

ผลลัพธ์

อาร์เรย์ของเรา...
 [[[ 0  1  2  3  4  5]
  [ 6  7  8  9 10 11]]
 [[12 13 14 15 16 17]
  [18 19 20 21 22 23]]]
มิติของอาร์เรย์...
 3
ชนิดข้อมูลของออบเจกต์อาร์เรย์...
 int64
รูปร่างของออบเจกต์อาร์เรย์...
 (2, 2, 6)
ผลลัพธ์...
 [[[ 36.  60.]
  [ 66. 108.]]
 [[ 40.  66.]
  [ 72. 117.]]
 [[ 44.  72.]
  [ 78. 126.]]
 [[ 48.  78.]
  [ 84. 135.]]
 [[ 52.  84.]
  [ 90. 144.]]
 [[ 56.  90.]
  [ 96. 153.]]]