कैसे ठीक करें: केवल पूर्णांक अदिश सरणियों को अदिश सूचकांक में परिवर्तित किया जा सकता है


पायथन का उपयोग करते समय आपके सामने एक त्रुटि आ सकती है:

 TypeError : only integer scalar arrays can be converted to a scalar index

यह त्रुटि आमतौर पर दो कारणों में से एक के कारण होती है:

1. आपने किसी सूची पर सरणी अनुक्रमण करने का प्रयास किया।

2. आपने गलत सिंटैक्स का उपयोग करके दो आव्यूहों को जोड़ने का प्रयास किया।

निम्नलिखित उदाहरण दिखाते हैं कि दोनों परिदृश्यों में इन त्रुटियों से कैसे बचा जाए।

उदाहरण 1: आपने किसी सूची पर सरणी अनुक्रमण करने का प्रयास किया।

मान लीजिए कि हम एक किंवदंती और लेबल के साथ matplotlib में एक लाइन चार्ट बनाने के लिए निम्नलिखित कोड का उपयोग करने का प्रयास कर रहे हैं:

 import numpy as np

#create a list of values
data = [3, 5, 5, 7, 8, 10, 12, 14]

#choose 3 random values from list
random_values = np. random . choice (range(len(data)), size= 2 )

#attempt to use indexing to access elements in list
random_vals = data[random_values. astype (int)]

#view results
random_vals

TypeError : only integer scalar arrays can be converted to a scalar index

हमें एक त्रुटि प्राप्त हो रही है क्योंकि हमने एक सूची में सरणी अनुक्रमण का उपयोग करने का प्रयास किया है।

इस त्रुटि से बचने के लिए, हमें पहले np.array() का उपयोग करके सूची को NumPy सरणी में निम्नानुसार परिवर्तित करना होगा:

 import numpy as np

#create a list of values
data = [3, 5, 5, 7, 8, 10, 12, 14]

#choose 3 random values from list
random_values = np. random . choice (range(len(data)), size= 2 )

#attempt to use indexing to access elements in list
random_vals = np. array (data)[random_values. astype (int)]

#view results
random_vals

array([5, 7])

इस बार हम बिना किसी त्रुटि के सूची से यादृच्छिक रूप से दो मानों का चयन कर सकते हैं क्योंकि हमने पहली बार सूची को एक NumPy सरणी में परिवर्तित किया था।

उदाहरण 2: आपने गलत सिंटैक्स का उपयोग करके दो आव्यूहों को जोड़ने का प्रयास किया।

मान लीजिए कि हम दो NumPy मैट्रिक्स को संयोजित करने के लिए निम्नलिखित कोड का उपयोग करने का प्रयास करते हैं:

 import numpy as np

#create twoNumPy matrices
mat1 = np. matrix ([[3, 5], [5, 7]])
mat2 = np. matrix ([[2, 4], [1, 8]])

#attempt to concatenate both matrices
n.p. concatenate (mat1, mat2)

TypeError : only integer scalar arrays can be converted to a scalar index

हमें एक त्रुटि प्राप्त हो रही है क्योंकि हम कॉन्टेनेट () फ़ंक्शन के लिए टपल के रूप में मैट्रिक्स प्रदान करने में विफल रहे हैं।

इस त्रुटि से बचने के लिए, आपको कॉन्टेनेट () फ़ंक्शन में मैट्रिक्स को टुपल रूप में प्रदान करने के लिए दोहरे कोष्ठक का उपयोग करना चाहिए:

 import numpy as np

#create twoNumPy matrices
mat1 = np. matrix ([[3, 5], [5, 7]])
mat2 = np. matrix ([[2, 4], [1, 8]])

#attempt to concatenate both matrices
n.p. concatenate ((mat1, mat2))

matrix([[3, 5],
        [5, 7],
        [2, 4],
        [1, 8]])

इस बार हम बिना किसी त्रुटि के दोनों आव्यूहों को संयोजित करने में सफल रहे।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:

पंडों में KeyError को कैसे ठीक करें
कैसे ठीक करें: वैल्यूएरर: फ्लोट NaN को int में बदलने में असमर्थ
कैसे ठीक करें: वैल्यूएरर: ऑपरेंड को आकृतियों के साथ प्रसारित नहीं किया जा सका

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *