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

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


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

ถ้า v ยาวกว่า a อาร์เรย์จะถูกสลับก่อนการคำนวณ วิธีการส่งกลับ Convolution แบบแยกส่วนเชิงเส้นของ a และ v พารามิเตอร์ที่ 1 คือ a เป็นอาร์เรย์อินพุตแบบหนึ่งมิติแรก พารามิเตอร์ที่ 2 v คืออาร์เรย์อินพุตหนึ่งมิติที่สอง พารามิเตอร์ที่ 3 โหมดเป็นทางเลือก มีค่าเต็ม 'ถูกต้อง' 'เหมือนกัน'

โหมด 'ถูกต้อง' จะส่งคืนเอาต์พุตของความยาวสูงสุด (M, N) - นาที (M, N) + 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 = 'valid' ))

ตัวอย่าง

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 = 'valid' ))

ผลลัพธ์

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....
[2.5]