آرایههای NumPy میتوانند انواع مختلفی از دادهها را ذخیره کنند. این انواع دادهها، که با نام “dtype” (data type) شناخته میشوند، به NumPy اجازه میدهند تا بهینهسازیهای خاصی برای عملکرد و فضای حافظه انجام دهد.
هر آرایه دارای دو ویژگی اصلی است:
- داده ها: مقادیر واقعی که در آرایه ذخیره می شوند.
- نوع داده: نوع داده ای که برای نمایش مقادیر در آرایه استفاده می شود.
NumPy انواع داده مختلفی را برای ذخیره انواع مختلف داده ها ارائه می دهد.
برخی از رایج ترین انواع داده های آرایه NumPy عبارتند از:
انواع داده های آرایه
۱. اعداد صحیح (Integers)
int8
: عدد صحیح ۸ بیتی (از -۱۲۸ تا ۱۲۷)int16
: عدد صحیح ۱۶ بیتی (از -۳۲۷۶۸ تا ۳۲۷۶۷)int32
: عدد صحیح ۳۲ بیتی (از -۲,۱۴۷,۴۸۳,۶۴۸ تا ۲,۱۴۷,۴۸۳,۶۴۷)int64
: عدد صحیح ۶۴ بیتی (از -۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۸ تا ۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۷)
۲. اعداد صحیح بدون علامت (Unsigned Integers)
uint8
: عدد صحیح ۸ بیتی بدون علامت (از ۰ تا ۲۵۵)uint16
: عدد صحیح ۱۶ بیتی بدون علامت (از ۰ تا ۶۵,۵۳۵)uint32
: عدد صحیح ۳۲ بیتی بدون علامت (از ۰ تا ۴,۲۹۴,۹۶۷,۲۹۵)uint64
: عدد صحیح ۶۴ بیتی بدون علامت (از ۰ تا ۱۸,۴۴۶,۷۴۴,۰۷۳,۷۰۹,۵۵۱,۶۱۵)
۳. اعداد اعشاری (Floating Point)
float16
: عدد اعشاری ۱۶ بیتی (نیمه دقت)float32
: عدد اعشاری ۳۲ بیتی (دقت استاندارد، معادلfloat
در پایتون)float64
: عدد اعشاری ۶۴ بیتی (دقت دو برابر، معادلdouble
در زبانهای دیگر)
۴. اعداد مختلط (Complex Numbers)
complex64
: عدد مختلط با دو جزء ۳۲ بیتی (قسمت حقیقی و قسمت موهومی)complex128
: عدد مختلط با دو جزء ۶۴ بیتی
۵. نوع دادههای بولی (Boolean)
bool
: دادههای بولی که تنها میتوانندTrue
یاFalse
باشند.
۶. رشتههای یونیکد (Unicode Strings)
str
: رشتههای یونیکد، به عنوان مثال،U
برای تعیین تعداد کاراکترها (مثلاًU5
برای رشتهای با حداکثر ۵ کاراکتر)
۷. رشتههای باینری (Byte Strings)
bytes
: دادههای رشتهای به صورت بایتها، به عنوان مثال،S
برای تعیین تعداد بایتها (مثلاًS5
برای رشتهای با حداکثر ۵ بایت)
۸. دادههای زمانی (Datetime)
datetime64
: دادههای زمانی برای نگهداری تاریخ و زمان، با دقت و فرمتهای مختلف.timedelta64
: دادههایی برای اندازهگیری فاصلههای زمانی.
۹. نوع دادههای شیء (Object)
object
: برای ذخیرهسازی اشیاء عمومی پایتون. استفاده از این نوع داده کمتر رایج است زیرا NumPy بهینهسازیهایی را که برای انواع دادههای دیگر انجام میدهد، نمیتواند برای این نوع انجام دهد.
انتخاب نوع داده مناسب:
- نوع داده مناسب را با توجه به نوع داده هایی که می خواهید ذخیره کنید و دقت مورد نیاز خود انتخاب کنید.
- به عنوان مثال، اگر با اعداد صحیح کوچک کار می کنید،
np.int8
ممکن است کافی باشد. - اما اگر با اعداد صحیح بزرگ یا محاسبات اعشاری پیچیده کار می کنید، به
np.int64
یاnp.float64
نیاز دارید.
تبدیل نوع داده:
می توانید از توابع NumPy مانند np.astype()
برای تبدیل نوع داده یک آرایه به نوع داده دیگر استفاده کنید.
import numpy as np
arr = np.array([۱, ۲, ۳, ۴, ۵])
# تبدیل آرایه به اعداد اعشاری ۳۲ بیتی
float_arr = arr.astype(np.float32)
print(float_arr) # Output: [1. 2. 3. 4. 5.]
مثال:
در زیر نمونهای از ایجاد آرایه با انواع دادههای مختلف آورده شده است:
import numpy as np # آرایه از اعداد صحیح ۳۲ بیتی arr_int32 = np.array([1, 2, 3, 4], dtype=np.int32) # آرایه از اعداد اعشاری ۶۴ بیتی arr_float64 = np.array([1.0, 2.5, 3.2], dtype=np.float64) # آرایه از دادههای بولی arr_bool = np.array([True, False, True], dtype=np.bool_) # آرایه از رشتههای یونیکد arr_str = np.array(['a', 'b', 'c'], dtype=np.str_) # چاپ نوع دادههای هر آرایه print(arr_int32.dtype) # int32 print(arr_float64.dtype) # float64 print(arr_bool.dtype) # bool print(arr_str.dtype) # <U1 (یونیکد رشته ۱ کاراکتری)
نکات:
- نوع داده پیش فرض برای
np.array()
float64
است. - می توانید با استفاده از آرگومان
dtype
درnp.array()
نوع داده را هنگام ایجاد آرایه مشخص کنید. - برای اطلاعات بیشتر در مورد انواع داده های NumPy و توابع مربوطه، به مستندات رسمی NumPy (https://numpy.org/doc/) مراجعه کنید.
با درک انواع داده های مختلف آرایه NumPy و انتخاب نوع مناسب برای نیازهای خود، می توانید از این کتابخانه قدرتمند به طور کارآمد برای ذخیره، دستکاری و تجزیه و تحلیل داده ها در برنامه های پایتون خود استفاده کنید.