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

Python में दिए गए अक्ष पर NaN को एक मानकर सरणी तत्वों का संचयी गुणनफल लौटाएं

विवरण

numpy.nancumprod() फंक्शन दिए गए अक्ष के साथ सरणी तत्वों का संचयी गुणनफल गणना करता है, NaN मानों को 1 मानकर। यह लेख axis=1 (पंक्ति-वार) पर केंद्रित है।

चरण

import numpy as np

# NaN के साथ नंपाई ऐरे बनाएं
arr = np.array([[5, 10, 15], [20, np.nan, 30]])

print("हमारा ऐरे...\n", arr)
print("\nहमारे ऐरे के आयाम...\n", arr.ndim)
print("\nहमारे ऐरे ऑब्जेक्ट का डेटाटाइप...\n", arr.dtype)

# अक्ष 1 पर संचयी गुणनफल (NaN को 1 मानकर)
print("\nसरणी तत्वों का संचयी गुणनफल...\n", np.nancumprod(arr, axis=1))

पूर्ण उदाहरण

import numpy as np

# NaN के साथ ऐरे बनाएं
arr = np.array([[5, 10, 15], [20, np.nan, 30]])

# ऐरे प्रदर्शित करें
print("हमारा ऐरे...\n", arr)
print("\nहमारे ऐरे के आयाम...\n", arr.ndim)
print("\nहमारे ऐरे ऑब्जेक्ट का डेटाटाइप...\n", arr.dtype)

# अक्ष 1 पर संचयी गुणनफल
print("\nसरणी तत्वों का संचयी गुणनफल...\n", np.nancumprod(arr, axis=1))

आउटपुट

हमारा ऐरे...
[[ 5. 10. 15.]
 [20. nan 30.]]
हमारे ऐरे के आयाम...
2
हमारे ऐरे ऑब्जेक्ट का डेटाटाइप...
float64
सरणी तत्वों का संचयी गुणनफल...
[[  5.  50. 750.]
 [ 20.  20. 600.]]

व्याख्या (axis=1)

पंक्ति-वार संचयी गुणनफल:

  • पंक्ति 0: 5 → 5*10=50 → 50*15=750
  • पंक्ति 1: 20 → 20*1=20 (NaN को 1 माना) → 20*30=600

axis=0 बनाम axis=1 तुलना


arr = [[5, 10, 15],
       [20, nan, 30]]

axis=0 (स्तंभ-वार):
[[  5,  10,  15],
 [100,  10, 450]]

axis=1 (पंक्ति-वार):
[[  5,  50, 750],
 [ 20,  20, 600]]

dtype पैरामीटर


# परिणाम का डेटा प्रकार नियंत्रित करें
np.nancumprod(arr, axis=1, dtype=np.int64)
np.nancumprod(arr, axis=1, dtype=np.float32)

out पैरामीटर


# पूर्व-आवंटित आउटपुट ऐरे में परिणाम संग्रहीत करें
out = np.zeros_like(arr)
np.nancumprod(arr, axis=1, out=out)

मुख्य बिंदु

  • NaN गुणनफल को प्रभावित नहीं करते (1 के रूप में व्यवहार किए जाते हैं)
  • अग्रणी NaN → 1 से शुरू होते हैं
  • सभी-NaN स्लाइस → सभी 1
  • axis डिफ़ॉल्ट फ्लैट है; स्पष्ट अक्ष के लिए निर्दिष्ट करें
  • पूर्णांक ऐरे के लिए, डिफ़ॉल्ट प्लेटफॉर्म इंटीजर (आमतौर पर int64) उपयोग किया जाता है
  1. - पायथन में अक्ष 1 पर NaN को शून्य मानकर सरणी तत्वों का संचयी योग लौटाना

    दिए गए अक्ष पर सरणी तत्वों का संचयी योग लौटाने के लिए, NaN को शून्य मानकर nancumsum() विधि का उपयोग करें। जब NaN का सामना होता है तो संचयी योग नहीं बदलता और अग्रणी NaN को शून्य से बदल दिया जाता है। उन स्लाइस के लिए शून्य लौटाए जाते हैं जो सभी NaN हैं या खाली हैं। यह विधि परिणाम रखने वाली एक नई सरणी

  1. - पायथन में अक्ष 0 पर NaN को शून्य मानकर सरणी तत्वों का संचयी योग लौटाना

    दिए गए अक्ष पर सरणी तत्वों का संचयी योग लौटाने के लिए, NaN को शून्य मानकर nancumsum() विधि का उपयोग करें। जब NaN का सामना होता है तो संचयी योग नहीं बदलता और अग्रणी NaN को शून्य से बदल दिया जाता है। उन स्लाइस के लिए शून्य लौटाए जाते हैं जो सभी NaN हैं या खाली हैं। संचयी कार्य इस तरह करता है: 5, 5+10,

  1. - पायथन में N-डायमेंशनल ऐरे का ग्रेडिएंट एक्सिस 0 पर लौटाएं

    ग्रेडिएंट की गणना इंटीरियर पॉइंट्स में सेकंड ऑर्डर एक्यूरेट सेंट्रल डिफरेंसेस का उपयोग करके की जाती है और बाउंड्रीज पर फर्स्ट या सेकंड ऑर्डर एक्यूरेट वन-साइडेड (फॉरवर्ड या बैकवर्ड) डिफरेंसेस का उपयोग करके। लौटाया गया ग्रेडिएंट इसलिए इनपुट ऐरे के समान आकार का होता है। पहला पैरामीटर f एक N-डायमेंशनल