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

Tích chập tuyến tính rời rạc của hai dãy 1D trong Python

Để tính tích chập tuyến tính rời rạc đầy đủ của hai dãy một chiều, sử dụng numpy.convolve() với mode='full' (mặc định). Trả về tích chập hoàn chỉnh độ dài M+N-1.

Các bước thực hiện (mode='full' - mặc định)

1. Nhập thư viện

import numpy as np

2. Tạo hai mảng 1D

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

3. Hiển thị mảng

print("Mảng 1...\n", arr1)
print("\nMảng 2...\n", arr2)

4. Kiểm tra số chiều

print("\nSố chiều Mảng 1...\n", arr1.ndim)
print("\nSố chiều Mảng 2...\n", arr2.ndim)

5. Kiểm tra hình dạng

print("\nHình dạng Mảng 1...\n", arr1.shape)
print("\nHình dạng Mảng 2...\n", arr2.shape)

6. Tích chập đầy đủ (mode mặc định)

print("\nKết quả (mode='full')...\n", np.convolve(arr1, arr2))

Ví dụ hoàn chỉnh

import numpy as np

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

print("Mảng 1...\n", arr1)
print("\nMảng 2...\n", arr2)
print("\nSố chiều Mảng 1...\n", arr1.ndim)
print("\nSố chiều Mảng 2...\n", arr2.ndim)
print("\nHình dạng Mảng 1...\n", arr1.shape)
print("\nHình dạng Mảng 2...\n", arr2.shape)
print("\nKết quả (mode='full')...\n", np.convolve(arr1, arr2))

Kết quả đầu ra

Mảng 1...
 [1 2 3]
Mảng 2...
 [0.  1.  0.5]
Số chiều Mảng 1...
 1
Số chiều Mảng 2...
 1
Hình dạng Mảng 1...
 (3,)
Hình dạng Mảng 2...
 (3,)
Kết quả (mode='full')...
 [0.  1.  2.5 4.  1.5]

Giải thích mode='full' (mặc định): Tích chập đầy đủ độ dài 3+3-1=5:

  • Vị trí 0: 1×0 = 0
  • Vị trí 1: 1×1 + 2×0 = 1
  • Vị trí 2: 1×0.5 + 2×1 + 3×0 = 2.5
  • Vị trí 3: 2×0.5 + 3×1 = 4
  • Vị trí 4: 3×0.5 = 1.5