Datatypes in NumPy in Python in Hindi – पूरी जानकारी Example के साथ
Table of Contents
1. NumPy Data Types
Python में normal list के अंदर हम अलग-अलग type के values एक साथ रख सकते हैं, जैसे number, string, boolean सब एक ही list में। लेकिन NumPy array ऐसा नहीं करता। NumPy array के अंदर सभी elements का datatype same होता है, और यही चीज़ NumPy को fast और memory-efficient बनाती है।
असल में NumPy अपने खुद के datatypes use करता है, जिन्हें dtype कहा जाता है। ये Python के normal datatypes (जैसे int, float, str) से थोड़े अलग होते हैं क्योंकि इनमें size भी fix होता है, जैसे कितने bits या bytes memory में लगेंगे।
नीचे NumPy के कुछ मुख्य datatypes दिए गए हैं:
- int8, int16, int32, int64 – ये सभी integer values store करते हैं, बस इनकी size अलग-अलग होती है यानी कितनी बड़ी value store हो सकती है।
- float16, float32, float64 – ये decimal (fractional) values store करने के लिए use होते हैं।
- bool – सिर्फ True या False value store करता है।
- complex64, complex128 – complex numbers (जिनमें real और imaginary part होती है) store करने के लिए।
- str_ / unicode_ – text values के लिए use होता है।
import numpy as np
arr = np.array([10, 20, 30])
print(arr.dtype) # output: int64 (system ke hisab se int32 bhi ho sakta hai)
ऊपर के example में जब हमने बिना कोई datatype बताए array बनाया, तो NumPy ने खुद ही values देखकर सही datatype select कर लिया। इसे automatic type detection कहते हैं।
अगर आप चाहें तो array बनाते समय खुद भी datatype specify कर सकते हैं, इसके लिए dtype parameter use होता है:
arr2 = np.array([1, 2, 3], dtype="float32")
print(arr2) # output: [1. 2. 3.]
print(arr2.dtype) # output: float32
NumPy में datatypes इसलिए important होते हैं क्योंकि अगर आप बड़ी मात्रा में data (जैसे machine learning या data science में) use कर रहे हैं, तो सही datatype चुनने से memory भी बचती है और calculation भी तेज़ होती है। जैसे अगर आपकी values छोटी हैं तो int8 use करना int64 से कहीं ज्यादा efficient रहेगा।
यह diagram NumPy के मुख्य datatype categories दिखा रहा है — Integer, Float, Boolean, Complex और String — जिनमें से हर एक की अलग-अलग size variants होती हैं।
2. Type Conversion
कई बार हमें किसी array का datatype बदलने की जरूरत पड़ती है, जैसे अगर array integer में है लेकिन हमें calculation के लिए float चाहिए। इसे ही Type Conversion या Type Casting कहते हैं।
NumPy में type conversion करने के लिए मुख्य रूप से astype() method use होता है। यह original array को change नहीं करता, बल्कि एक नया array return करता है जिसमें बताया गया datatype होता है।
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr.dtype) # output: int64
new_arr = arr.astype("float32")
print(new_arr) # output: [1. 2. 3. 4.]
print(new_arr.dtype) # output: float32
ऊपर के example में हमने integer array को float में convert किया। ध्यान दें कि arr अभी भी अपने पुराने datatype यानी int64 में ही है, सिर्फ new_arr नाम का नया array float32 datatype में बना है।
Type conversion के दौरान कुछ बातों का ध्यान रखना जरूरी होता है:
- अगर आप float को int में convert करते हैं, तो decimal part cut जाता है, round नहीं होता।
- अगर बड़ी value को छोटे datatype (जैसे int64 से int8) में convert किया जाए, तो data loss या unexpected result भी आ सकता है।
- String को number में convert करते समय अगर string valid number नहीं है, तो error आ जाता है।
float_arr = np.array([9.8, 3.2, 7.6])
int_arr = float_arr.astype("int32")
print(int_arr) # output: [9 3 7] -> decimal part hat gaya, round nahi hua
एक और तरीका है array बनाते समय ही सही datatype choose करना, ताकि बाद में conversion की जरूरत ही न पड़े। लेकिन real projects में अक्सर data अलग-अलग sources से आता है, इसलिए astype() बहुत काम आने वाला method है, especially data cleaning के time पर।
3. Checking Datatypes in Python in Hindi
किसी भी NumPy array का datatype check करना बहुत आसान है। इसके लिए array के साथ सीधे .dtype attribute use किया जाता है।
import numpy as np
arr = np.array([1.5, 2.5, 3.5])
print(arr.dtype) # output: float64
अगर आपको सिर्फ यह check करना है कि array का datatype किसी particular type से match करता है या नहीं, तो आप directly comparison भी कर सकते हैं:
arr = np.array([1, 2, 3])
if arr.dtype == "int64":
print("Yeh array integer type ka hai")
else:
print("Yeh array integer type ka nahi hai")
कभी-कभी हमें array के हर element का individual Python type भी check करना होता है, especially तब जब array object type का हो। इसके लिए type() function use कर सकते हैं:
arr = np.array([1, "hello", 3.5], dtype=object)
for item in arr:
print(item, "->", type(item))
यहाँ dtype=object use करने से NumPy array के अंदर अलग-अलग Python datatypes रखने की permission देता है, हालांकि इससे NumPy की speed और memory efficiency वाला फायदा कम हो जाता है, इसलिए इसे ज्यादातर सिर्फ जरूरत पड़ने पर ही use करना चाहिए।
यह diagram दिखा रहा है कि array बनाने के बाद .dtype attribute का use करके उसका datatype कैसे check किया जाता है।
Exam की तैयारी करते समय ध्यान रखें कि NumPy array हमेशा एक ही datatype के elements रखता है, जबकि normal Python list में mixed datatypes possible होते हैं। यही मुख्य फर्क NumPy को data science और numerical calculations के लिए इतना popular बनाता है।