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

ส่งคืนการบิดเชิงเส้นแบบไม่ต่อเนื่องของลำดับหนึ่งมิติสองลำดับด้วยโหมดในPython


หากต้องการส่งคืนการบิดเชิงเส้นแบบไม่ต่อเนื่องของลำดับหนึ่งมิติสองลำดับ ให้ใช้เมธอด thenumpy.convolve() ใน Python Numpy ตัวดำเนินการบิดมักจะเห็นในการประมวลผลสัญญาณ ซึ่งจำลองผลกระทบของระบบไม่แปรผันตามเวลาเชิงเส้นบนสัญญาณ ในทฤษฎีความน่าจะเป็น ผลรวมของตัวแปรสุ่มอิสระสองตัวจะถูกกระจายตามการบิดของการแจกแจงแต่ละตัว ถ้า v ยาวกว่า a อาร์เรย์จะถูกสลับก่อนการคำนวณ

วิธีการส่งกลับ Convolution เชิงเส้นแบบไม่ต่อเนื่องของ a และ v พารามิเตอร์ที่ 1 a (N) เป็นอาร์เรย์อินพุตแบบหนึ่งมิติแรก พารามิเตอร์ตัวที่ 2 v (M) คืออาร์เรย์อินพุตแบบหนึ่งมิติที่สอง พารามิเตอร์ที่ 3 โหมดเป็นทางเลือก โดยมีค่าเต็ม', 'ถูกต้อง', 'เหมือนกัน' โหมด 'ถูกต้อง' ส่งคืนเอาต์พุตของความยาวสูงสุด (M, N) - นาที (M, N) + 1 ผลิตภัณฑ์การบิดเบี้ยวจะได้รับเฉพาะจุดที่สัญญาณทับซ้อนกันอย่างสมบูรณ์ ค่าที่อยู่นอกขอบเขตสัญญาณจะไม่มีผลใดๆ

โหมดเริ่มต้นคือ 'เต็ม' ค่านี้จะส่งคืนการบิดเบี้ยวที่จุดทับซ้อนแต่ละจุด โดยมีรูปร่างผลลัพธ์เป็น (N+M-1,) ที่จุดสิ้นสุดของการบิดเบี้ยว สัญญาณจะไม่ทับซ้อนกันอย่างสมบูรณ์ และอาจเห็นผลกระทบจากขอบเขต

ขั้นตอน

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

import numpy as np

การสร้างอาร์เรย์หนึ่งมิติจำนวนสองอันโดยใช้เมธอด array() -

arr1 = np.array([1, 2, 3])
arr2 = np.array([0, 1, 0.5])

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

print("Array1...\n",arr1)
print("\nArray2...\n",arr2)

ตรวจสอบขนาดของอาร์เรย์ทั้งสอง -

print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)

ตรวจสอบรูปร่างของอาร์เรย์ทั้งสอง -

print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)

ในการส่งคืนการบิดเป็นเส้นตรงแบบไม่ต่อเนื่องของลำดับหนึ่งมิติสองลำดับ ให้ใช้วิธี thenumpy.convolve() ใน Python Numpy -

print("\nResult....\n",np.convolve(arr1, arr2, mode = 'full' ))

ตัวอย่าง

import numpy as np

# Creating two numpy One-Dimensional array using the array() method
arr1 = np.array([1, 2, 3])
arr2 = np.array([0, 1, 0.5])

# Display the arrays
print("Array1...\n",arr1)
print("\nArray2...\n",arr2)

# Check the Dimensions of both the arrays
print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)

# Check the Shape of both the arrays
print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)

# To return the discrete linear convolution of two one-dimensional sequences, use the numpy.convolve() method in Python Numpy
print("\nResult....\n",np.convolve(arr1, arr2, mode = 'full' ))

ผลลัพธ์

Array1...
[1 2 3]

Array2...
[0. 1. 0.5]

Dimensions of Array1...
1

Dimensions of Array2...
1

Shape of Array1...
(3,)

Shape of Array2...
(3,)

Result....
[0. 1. 2.5 4. 1.5]