Để 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