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

Python में NaN को शून्य और अनंत को बड़े फाइनाइट नंबर्स से बदलें

NumPy का numpy.nan_to_num() फंक्शन NaN मानों को शून्य से और अनंत (infinity) मानों को बड़े फाइनाइट नंबर्स से बदलता है। यह डेटा सफाई और न्यूमेरिकल स्थिरता के लिए सबसे आम उपयोग है।

सिंटैक्स

numpy.nan_to_num(x, copy=True, nan=0.0, posinf=None, neginf=None)
  • x: इनपुट ऐरे।
  • copy: True = नई कॉपी, False = इन-प्लेस (यदि संभव)।
  • nan: NaN रिप्लेसमेंट (डिफ़ॉल्ट 0.0)।
  • posinf: +∞ रिप्लेसमेंट (डिफ़ॉल्ट: dtype मैक्स)।
  • neginf: -∞ रिप्लेसमेंट (डिफ़ॉल्ट: dtype मिन)।

उदाहरण: डिफ़ॉल्ट व्यवहार

import numpy as np

# inf, -inf, nan, और सामान्य मान
arr = np.array([np.inf, -np.inf, np.nan, -128, 128])

print("मूल ऐरे:\n", arr)
print("\nडायमेंशन्स:", arr.ndim)
print("डेटा टाइप:", arr.dtype)
print("आकार:", arr.shape)

# डिफ़ॉल्ट: NaN→0, inf→डिफ़ॉल्ट फाइनाइट
result = np.nan_to_num(arr)
print("\nपरिणाम (डिफ़ॉल्ट):\n", result)

आउटपुट

मूल ऐरे:
 [ inf -inf nan -128. 128.]
डायमेंशन्स: 1
डेटा टाइप: float64
आकार: (5,)
परिणाम (डिफ़ॉल्ट):
 [ 1.79769313e+308 -1.79769313e+308 0.00000000e+000 -1.28000000e+002 1.28000000e+002]

व्याख्या

सामान्य उपयोग पैटर्न


# 1. ML डेटा सफाई
X_clean = np.nan_to_num(X, nan=0.0, posinf=1e6, neginf=-1e6)

# 2. लॉग गणना से पहले (log(0) = -inf से बचने के लिए)
arr = np.array([1, 0, -1, np.nan])
safe_arr = np.nan_to_num(arr, nan=1e-10, neginf=1e-10)
log_vals = np.log(np.abs(safe_arr))

# 3. विज़ुअलाइज़ेशन के लिए
import matplotlib.pyplot as plt
data = np.array([1, 2, np.inf, 4, -np.inf, np.nan])
clean_data = np.nan_to_num(data, nan=0, posinf=10, neginf=-10)
plt.plot(clean_data)

इन-प्लेस ऑपरेशन (मेमोरी बचाएं)


arr = np.array([1.0, np.nan, np.inf])
print("पहले:", arr)
np.nan_to_num(arr, copy=False, nan=0, posinf=1e10)
print("बाद में (इन-प्लेस):", arr)

बहुआयामी ऐरे के साथ


arr_2d = np.array([[1, np.nan], [np.inf, -np.inf]])
print("2D ऐरे:\n", arr_2d)
print("साफ किया गया:\n", np.nan_to_num(arr_2d))

प्रदर्शन नोट

nan_to_num वेक्टोराइज़्ड है और बड़े ऐरे पर लूप की तुलना में बहुत तेज़ है। copy=False के साथ इन-प्लेस ऑपरेशन मेमोरी बचाता है लेकिन मूल डेटा बदल जाता है।

  1. पायथन पैंडास - DataFrame में सभी NaN तत्वों को 0 से बदलें पायथन पैंडास - DataFrame में सभी NaN तत्वों को 0 से बदलें

    NaN मानों को बदलने के लिए fillna() विधि का उपयोग करें। मान लीजिए हमारी CSV फ़ाइल Microsoft Excel में कुछ NaN मानों के साथ खुली है:सबसे पहले, आवश्यक लाइब्रेरी आयात करें:import pandas as pdCSV फ़ाइल से डेटा पैंडास DataFrame में लोड करें:dataFrame = pd.read_csv(C:\\Users\\amit_\\Desktop\\SalesData.csv)

  1. - पायथन में 3 और 5 के गुणकों को Fizz, Buzz से बदलना

    समस्या विवरण एक संख्या n दी गई है। हमें 1 से n तक की संख्याओं को दर्शाने वाली एक स्ट्रिंग सूची बनानी है, लेकिन कुछ नियमों का पालन करते हुए: यदि संख्या 3 से विभाज्य है, तो संख्या के स्थान पर Fizz लिखें यदि संख्या 5 से विभाज्य है, तो संख्या के स्थान पर Buzz लिखें यदि संख्या 3 और 5 दोनों से विभाज्य है

  1. - पायथन में लैम्ब्डा एक्सप्रेशन से धनात्मक और ऋणात्मक संख्याओं को पुनर्व्यवस्थित करना

    इस लेख में, हम लैम्ब्डा एक्सप्रेशन के बारे में सीखेंगे जो धनात्मक और ऋणात्मक पूर्णांकों के इनपुट सरणी को लेगा। हम दो अलग-अलग सरणियाँ गणना करेंगे, एक में ऋणात्मक संख्याएँ और दूसरी में धनात्मक संख्याएँ। यहाँ हम एक Rearrange() फ़ंक्शन परिभाषित करते हैं जो केवल एक तर्क स्वीकार करता है यानी पूर्णांकों

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
मूलपरिणामनियम
+∞1.79769313e+308float64 मैक्स फाइनाइट (posinf डिफ़ॉल्ट)
-∞-1.79769313e+308float64 मिन फाइनाइट (neginf डिफ़ॉल्ट)
NaN0.0nan डिफ़ॉल्ट = 0.0
-128-128.0अपरिवर्तित
128128.0अपरिवर्तित