Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में numpy.convolve() से दो 1D अनुक्रमों का पूर्ण कन्वोल्यूशन


परिचय

numpy.convolve() का डिफ़ॉल्ट मोड 'full' है, जो पूर्ण असतत रैखिक कन्वोल्यूशन लौटाता है जिसकी लंबाई M + N - 1 होती है।

चरण

1. लाइब्रेरी आयात करें

import numpy as np

2. दो 1D सरणियाँ बनाएं

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

3. सरणी जानकारी प्रदर्शित करें

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)

4. डिफ़ॉल्ट 'full' मोड में कन्वोल्यूशन

print("\nपरिणाम (full)...\n", np.convolve(arr1, arr2))

पूर्ण उदाहरण

import numpy as np

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)

# Full कन्वोल्यूशन (डिफ़ॉल्ट)
print("\nपरिणाम....\n", np.convolve(arr1, arr2))

आउटपुट

सरणी1...
 [1 2 3]
सरणी2...
 [0.  1.  0.5]
सरणी1 के आयाम...
 1
सरणी2 के आयाम...
 1
सरणी1 का आकार...
 (3,)
सरणी2 का आकार...
 (3,)
परिणाम....
 [0.  1.  2.5  4.  1.5]

गणना विवरण (Full कन्वोल्यूशन)

लंबाई = 3 + 3 - 1 = 5

ऑफसेट -2: (1×0.5)                    = 0.5  → सूचकांक 4
ऑफसेट -1: (1×1) + (2×0.5)            = 2.0  → सूचकांक 3
ऑफसेट  0: (1×0) + (2×1) + (3×0.5)    = 2.5  → सूचकांक 2
ऑफसेट +1: (2×0) + (3×1)              = 3.0  → सूचकांक 1  (लेकिन आउटपुट में 1.0 है?)
ऑफसेट +2: (3×0)                      = 0.0  → सूचकांक 0

सही गणना (arr2 को उलटकर):

arr2 उलटा: [0.5, 1, 0]

k=0: 1×0.5 = 0.5
k=1: 1×1 + 2×0.5 = 2.0
k=2: 1×0 + 2×1 + 3×0.5 = 3.5
k=3: 2×0 + 3×1 = 3.0
k=4: 3×0 = 0

आउटपुट [0., 1., 2.5, 4., 1.5] से पता चलता है कि NumPy अलग कन्वेंशन उपयोग करता है। वास्तविक गणना:

np.convolve([1,2,3], [0,1,0.5])
= [1*0, 1*1+2*0, 1*0.5+2*1+3*0, 2*0.5+3*1, 3*0.5]
= [0, 1, 2.5, 4, 1.5] ✓

  1. - पायथन में दो वैक्टर (सरणियों) का क्रॉस प्रोडक्ट लौटाना

    दो वैक्टर का क्रॉस प्रोडक्ट निकालने के लिए, पायथन NumPy में numpy.cross() विधि का उपयोग करें। यह विधि c लौटाती है, जो वैक्टर क्रॉस प्रोडक्ट होता है। पहला पैरामीटर a पहले वैक्टर(ओं) के घटक हैं। दूसरा पैरामीटर b दूसरे वैक्टर(ओं) के घटक हैं। तीसरा पैरामीटर axisa a का अक्ष है जो वैक्टर(ओं) को परिभाषित क

  1. - पायथन में रैखिक बीजगणित में कोलेस्की विघटन लौटाना

    कोलेस्की विघटन लौटाने के लिए, numpy.linalg.cholesky() विधि का उपयोग करें। वर्ग मैट्रिक्स a का कोलेस्की विघटन, L * L.H लौटाएं, जहां L निचला-त्रिकोणीय है और .H संयुग्म ट्रांसपोज ऑपरेटर है। a हर्मिटियन और पॉजिटिव-डेफिनिट होना चाहिए। यह जांचने के लिए कोई जांच नहीं की जाती कि a हर्मिटियन है या नहीं। इसके

  1. - Python Pandas - इंडेक्स मानों की मेमोरी उपयोग लौटाएं

    परिचय पैंडास इंडेक्स के मानों की मेमोरी उपयोग (बाइट्स में) प्राप्त करने के लिए index.memory_usage() मेथड का उपयोग करें। आवश्यक लाइब्रेरी आयात करें import pandas as pd इंडेक्स बनाएं index = pd.Index([15, 25, 35, 45, 55]) इंडेक्स प्रदर्शित करें print(पैंडास इंडेक्स...\n, index) मेमोरी उपयोग प्राप्