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

Python में NaN को शून्य मानकर सरणी तत्वों का संचयी योग लौटाएं लेकिन परिणाम का प्रकार बदलें

विवरण

numpy.nancumsum() फंक्शन दिए गए अक्ष के साथ सरणी तत्वों का संचयी योग (cumulative sum) लौटाता है, NaN मानों को 0 मानकर। अग्रणी NaN को 0 से बदल दिया जाता है। पूरी तरह से NaN या खाली स्लाइस के लिए 0 लौटाया जाता है। dtype पैरामीटर परिणाम का डेटा प्रकार नियंत्रित करता है।

पैरामीटर्स

  • a - इनपुट ऐरे
  • axis - संचयी योग का अक्ष (डिफ़ॉल्ट: फ्लैट)
  • dtype - परिणाम और संचयक का डेटा प्रकार
  • out - वैकल्पिक आउटपुट ऐरे

चरण

import numpy as np

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

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

# अक्ष 1 पर संचयी योग, dtype=int
print("\nसरणी तत्वों का संचयी योग...\n", np.nancumsum(arr, axis=1, dtype=int))

पूर्ण उदाहरण

import numpy as np

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

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

# अक्ष 1 पर संचयी योग, dtype=int
print("\nसरणी तत्वों का संचयी योग...\n", np.nancumsum(arr, axis=1, dtype=int))

आउटपुट

हमारा ऐरे...
[[10. 20. 30.]
 [40. nan 60.]]
हमारे ऐरे के आयाम...
2
हमारे ऐरे ऑब्जेक्ट का डेटाटाइप...
float64
सरणी तत्वों का संचयी योग...
[[ 10  30  60]
 [ 40  40 100]]

व्याख्या (axis=1, dtype=int)

पंक्ति-वार संचयी योग, NaN को 0 मानकर, परिणाम int:

  • पंक्ति 0: 10 → 10+20=30 → 30+30=60
  • पंक्ति 1: 40 → 40+0=40 (NaN=0) → 40+60=100

आउटपुट int होने के कारण दशमलव भाग काट दिया जाता है।

dtype प्रभाव


# डिफ़ॉल्ट (float64)
np.nancumsum(arr, axis=1)
# [[ 10.  30.  60.]
#  [ 40.  40. 100.]]

# dtype=int
np.nancumsum(arr, axis=1, dtype=int)
# [[ 10  30  60]
#  [ 40  40 100]]

# dtype=float32
np.nancumsum(arr, axis=1, dtype=np.float32)
# [[ 10.  30.  60.]
#  [ 40.  40. 100.]]  # float32 परिशुद्धता

nancumsum बनाम cumsum


# सामान्य cumsum: NaN प्रसारित होता है
np.cumsum(arr, axis=1)
# [[ 10.  30.  60.]
#  [ 40.  nan  nan]]

# nancumsum: NaN को 0 मानता है
np.nancumsum(arr, axis=1)
# [[ 10.  30.  60.]
#  [ 40.  40. 100.]]

मुख्य बिंदु

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

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

  1. - पायथन में इनपुट ऐरे का बेस 2 लॉगरिदम लौटाएं

    पायथन नम्पी में इनपुट ऐरे का बेस 2 लॉगरिदम लौटाने के लिए numpy.log2() मेथड का उपयोग करें। यह मेथड x का बेस-2 लॉगरिदम लौटाता है। यदि x स्केलर है तो यह स्केलर होता है। पहला पैरामीटर x इनपुट मान, ऐरे-जैसा होता है। दूसरा पैरामीटर out है, जहां परिणाम स्टोर होता है। यदि प्रदान किया गया है, तो इसका आकार इ

  1. - पायथन में स्ट्रिंग ऐरे एलिमेंट की लंबाई एलिमेंट-वाइज लौटाएं

    पायथन नम्पी में स्ट्रिंग ऐरे एलिमेंट की लंबाई एलिमेंट-वाइज लौटाने के लिए numpy.char.str_len() मेथड का उपयोग करें। यह मेथड इंटीजर्स का आउटपुट ऐरे लौटाता है। चरण सबसे पहले, आवश्यक लाइब्रेरी इम्पोर्ट करें: import numpy as np स्ट्रिंग्स का वन-डायमेंशनल ऐरे बनाएं: arr = np.array([Amy, Scarlett, Katie,