परिचय
पायथन में NumPy का उपयोग करके दो एक-आयामी अनुक्रमों का असतत रैखिक संकलन प्राप्त करने के लिए numpy.convolve() विधि का उपयोग करें। संकलन ऑपरेटर अक्सर सिग्नल प्रोसेसिंग में देखा जाता है, जहां यह एक सिग्नल पर रैखिक समय-अपरिवर्तनीय प्रणाली के प्रभाव को मॉडल करता है। संभाव्यता सिद्धांत में, दो स्वतंत्र यादृच्छिक चरों का योग उनके व्यक्तिगत वितरणों के संकलन के अनुसार वितरित होता है। यदि v, a से लंबा है, तो गणना से पहले सरणियों को स्वैप किया जाता है।
यह विधि a और v का असतत, रैखिक संकलन लौटाती है। पहला पैरामीटर a (N,) पहली एक-आयामी इनपुट सरणी है। दूसरा पैरामीटर v (M,) दूसरी एक-आयामी इनपुट सरणी है। तीसरा पैरामीटर mode वैकल्पिक है, जिसके मान 'full', 'valid', 'same' हैं। मोड 'valid' max(M, N) - min(M, N) + 1 की लंबाई का आउटपुट लौटाता है। संकलन उत्पाद केवल उन बिंदुओं के लिए दिया जाता है जहां सिग्नल पूरी तरह से ओवरलैप करते हैं। सिग्नल सीमा के बाहर के मानों का कोई प्रभाव नहीं पड़ता।
डिफ़ॉल्ट मोड 'full' है। यह ओवरलैप के प्रत्येक बिंदु पर संकलन लौटाता है, जिसका आउटपुट आकार (N+M-1,) होता है। संकलन के अंत-बिंदुओं पर, सिग्नल पूरी तरह से ओवरलैप नहीं करते हैं, और सीमा प्रभाव देखे जा सकते हैं।
चरण
आवश्यक लाइब्रेरी आयात करें
import numpy as np
array() विधि का उपयोग करके दो numpy एक-आयामी सरणियाँ बनाएं
arr1 = np.array([1, 2, 3])
arr2 = np.array([0, 1, 0.5])
सरणियाँ प्रदर्शित करें
print("सरणी1...\n", arr1)
print("\nसरणी2...\n", arr2)
दोनों सरणियों के आयाम जांचें
print("\nसरणी1 के आयाम...\n", arr1.ndim)
print("\nसरणी2 के आयाम...\n", arr2.ndim)
दोनों सरणियों का आकार जांचें
print("\nसरणी1 का आकार...\n", arr1.shape)
print("\nसरणी2 का आकार...\n", arr2.shape)
असतत रैखिक संकलन प्राप्त करें (mode='full')
print("\nपरिणाम....\n", np.convolve(arr1, arr2, mode='full'))
पूर्ण उदाहरण
import numpy as np
# array() विधि का उपयोग करके दो numpy एक-आयामी सरणियाँ बनाएं
arr1 = np.array([1, 2, 3])
arr2 = np.array([0, 1, 0.5])
# सरणियाँ प्रदर्शित करें
print("सरणी1...\n", arr1)
print("\nसरणी2...\n", arr2)
# दोनों सरणियों के आयाम जांचें
print("\nसरणी1 के आयाम...\n", arr1.ndim)
print("\nसरणी2 के आयाम...\n", arr2.ndim)
# दोनों सरणियों का आकार जांचें
print("\nसरणी1 का आकार...\n", arr1.shape)
print("\nसरणी2 का आकार...\n", arr2.shape)
# दो एक-आयामी अनुक्रमों का असतत रैखिक संकलन प्राप्त करें
print("\nपरिणाम....\n", np.convolve(arr1, arr2, mode='full'))
आउटपुट
सरणी1...
[1 2 3]
सरणी2...
[0. 1. 0.5]
सरणी1 के आयाम...
1
सरणी2 के आयाम...
1
सरणी1 का आकार...
(3,)
सरणी2 का आकार...
(3,)
परिणाम....
[0. 1. 2.5 4. 1.5]