NumPy का numpy.nancumsum() फंक्शन ऐरे एलिमेंट्स का क्यूमुलेटिव सम (संचयी योग) लौटाता है, जहां NaN मानों को शून्य माना जाता है। यह डेटा एनालिसिस में गायब मानों को संभालने के लिए बहुत उपयोगी है।
सिंटैक्स और पैरामीटर्स
numpy.nancumsum(a, axis=None, dtype=None, out=None)
- a: इनपुट ऐरे।
- axis: वह अक्ष जिसके साथ क्यूमुलेटिव सम 계산 किया जाए। डिफ़ॉल्ट None (फ्लैटेंड ऐरे)।
- dtype: परिणाम और एक्युमुलेटर का डेटा टाइप।
- out: वैकल्पिक आउटपुट ऐरे।
मुख्य विशेषताएं
- NaN मानों का सामना करने पर क्यूमुलेटिव सम नहीं बदलता।
- लीडिंग NaN को शून्य से बदल दिया जाता है।
- ऑल-NaN या खाली स्लाइस के लिए शून्य लौटाया जाता है।
- क्यूमुलेटिव सम ऐसे काम करता है: 5, 5+10, 5+10+15, 5+10+15+20...
उदाहरण
import numpy as np
# NaN के साथ ऐरे बनाएं
arr = np.array([10, 20, 30, 40, np.nan])
print("हमारा ऐरे:\n", arr)
print("\nडायमेंशन्स:", arr.ndim)
print("\nडेटा टाइप:", arr.dtype)
# NaN को शून्य मानकर क्यूमुलेटिव सम
result = np.nancumsum(arr)
print("\nक्यूमुलेटिव सम (NaN को 0 मानकर):\n", result)
आउटपुट
हमारा ऐरे:
[10. 20. 30. 40. nan]
डायमेंशन्स: 1
डेटा टाइप: float64
क्यूमुलेटिव सम (NaN को 0 मानकर):
[ 10. 30. 60. 100. 100.]
चरण-दर-चरण गणना
- पहला एलिमेंट: 10 → क्यूमुलेटिव सम = 10
- दूसरा एलिमेंट: 20 → क्यूमुलेटिव सम = 10 + 20 = 30
- तीसरा एलिमेंट: 30 → क्यूमुलेटिव सम = 30 + 30 = 60
- चौथा एलिमेंट: 40 → क्यूमुलेटिव सम = 60 + 40 = 100
- पांचवां एलिमेंट: NaN (0 माना गया) → क्यूमुलेटिव सम = 100 + 0 = 100
नियमित cumsum() से तुलना
import numpy as np
arr = np.array([10, 20, 30, 40, np.nan])
print("np.cumsum():", np.cumsum(arr)) # NaN फैलाता है
print("np.nancumsum():", np.nancumsum(arr)) # NaN को अनदेखा करता है
np.cumsum(): [ 10. 30. 60. 100. nan]
np.nancumsum(): [ 10. 30. 60. 100. 100.]
2D ऐरे के साथ उपयोग
arr_2d = np.array([[1, 2, np.nan], [4, np.nan, 6]])
print("अक्ष 0 के साथ:", np.nancumsum(arr_2d, axis=0))
print("अक्ष 1 के साथ:", np.nancumsum(arr_2d, axis=1))