विवरण
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) उपयोग किया जाता है