कैसे ठीक करें: true_divide में अमान्य मान आया
NumPy का उपयोग करते समय आपको एक चेतावनी का सामना करना पड़ सकता है:
RuntimeWarning : invalid value encountered in true_divide
यह चेतावनी तब होती है जब आप NumPy सरणी में किसी अमान्य मान (जैसे NaN, Inf, आदि) से विभाजित करने का प्रयास करते हैं।
यह ध्यान दिया जाना चाहिए कि यह सिर्फ एक चेतावनी है और अमान्य मान से विभाजित करने का प्रयास करते समय NumPy केवल एक नैन मान लौटाएगा।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस चेतावनी का कैसे जवाब देना है।
त्रुटि को पुन: उत्पन्न कैसे करें
मान लीजिए कि हम एक NumPy सरणी के मानों को दूसरे NumPy सरणी के मानों से विभाजित करने का प्रयास कर रहे हैं:
import numpy as np #define NumPy arrays x = np. array ([4, 5, 5, 7, 0]) y = np. array ([2, 4, 6, 7, 0]) #divide the values in x by the values in y n.p. divide (x,y) array([2., 1.25, 0.8333, 1., no]) RuntimeWarning : invalid value encountered in true_divide
ध्यान दें कि NumPy x के प्रत्येक मान को y के संगत मान से विभाजित करता है, लेकिन एक RuntimeWarning उत्पन्न होता है।
ऐसा इसलिए है क्योंकि किया गया अंतिम डिवीजन ऑपरेशन शून्य को शून्य से विभाजित किया गया था, जिसके परिणामस्वरूप एक मान nan प्राप्त हुआ।
इस चेतावनी का जवाब कैसे दें
जैसा कि पहले उल्लेख किया गया है, यह रनटाइमवार्निंग केवल एक चेतावनी है और कोड को निष्पादित होने से नहीं रोकती है।
हालाँकि, यदि आप इस प्रकार की चेतावनी को दबाना चाहते हैं, तो आप निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:
n.p. seterr (invalid=' ignore ')
यह NumPy को “अमान्य” संदेश वाली किसी भी चेतावनी को छिपाने के लिए कहता है।
इसलिए यदि हम कोड दोबारा चलाते हैं, तो हमें कोई चेतावनी नहीं मिलेगी:
import numpy as np #define NumPy arrays x = np. array ([4, 5, 5, 7, 0]) y = np. array ([2, 4, 6, 7, 0]) #divide the values in x by the values in y n.p. divide (x,y) array([2., 1.25, 0.8333, 1., no])
आउटपुट के अंतिम मान के लिए एक नैन मान अभी भी लौटाया जाता है, लेकिन इस बार कोई चेतावनी संदेश प्रदर्शित नहीं होता है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:
पंडों में KeyError को कैसे ठीक करें
कैसे ठीक करें: वैल्यूएरर: फ्लोट NaN को int में बदलने में असमर्थ
कैसे ठीक करें: वैल्यूएरर: ऑपरेंड को आकृतियों के साथ प्रसारित नहीं किया जा सका