فهرست سرفصل‌های NumPy
خانه (HOME) مقدمه (Intro) شروع کار (Getting Started) ساخت آرایه ها (Creating Arrays) ایندکس گذاری آرایه (Array Indexing) برش آرایه (Array Slicing) انواع داده (Data Types) کپی در برابر View (Copy vs View) شکل آرایه (Array Shape) تغییر شکل آرایه (Array Reshape) حلقه روی آرایه (Array Iterating) ترکیب آرایه ها (Array Join) تقسیم آرایه ها (Array Split) جستجو در آرایه (Array Search) مرتب سازی آرایه (Array Sort) فیلتر کردن آرایه (Array Filter) مقدمه تصادفی سازی (Random Intro) توزیع داده (Data Distribution) جابه جایی تصادفی (Random Permutation) ماژول Seaborn (Seaborn Module) توزیع نرمال (Normal Distribution) توزیع دوجمله ای (Binomial Distribution) توزیع پواسون (Poisson Distribution) توزیع یکنواخت (Uniform Distribution) توزیع لجستیک (Logistic Distribution) توزیع چندجمله ای (Multinomial Distribution) توزیع نمایی (Exponential Distribution) توزیع کای دو (Chi Square Distribution) توزیع ریلی (Rayleigh Distribution) توزیع پارتو (Pareto Distribution) توزیع زیف (Zipf Distribution) مقدمه ufunc (ufunc Intro) ساخت تابع ufunc (ufunc Create Function) حساب ساده با ufunc (ufunc Simple Arithmetic) گرد کردن اعشار با ufunc (ufunc Rounding Decimals) لگاریتم ها با ufunc (ufunc Logs) جمع ها با ufunc (ufunc Summations) حاصل ضرب ها با ufunc (ufunc Products) تفاضل ها با ufunc (ufunc Differences) کمترین مضرب مشترک با ufunc (ufunc Finding LCM) بزرگترین مقسوم علیه مشترک با ufunc (ufunc Finding GCD) توابع مثلثاتی با ufunc (ufunc Trigonometric) توابع هذلولوی با ufunc (ufunc Hyperbolic) عملیات مجموعه ای با ufunc (ufunc Set Operations) ویرایشگر (Editor) آزمون (Quiz) تمارین (Exercises) سرفصل دوره (Syllabus) برنامه مطالعه (Study Plan) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
NumPy

NumPy — انواع داده (Data Types)

آخرین بروزرسانی: 1404/08/25

انواع داده (Data Types)

برای کار جدی با نامپای باید انواع داده در نامپای را بشناسی. هر عدد، متن یا مقدار منطقی یک نوع داده (Data Type) دارد؛ مثل این که در مدرسه دفتر ریاضی، دفتر دیکته و دفتر نقاشی جدا داری.

انواع داده در پایتون

خود پایتون چند نوع داده مهم دارد. هرکدام برای یک کار است؛ مثل این که برای ریاضی از ماشین حساب استفاده می کنی، برای نقاشی از مداد رنگی.

  • string یعنی متن؛ هرچیزی داخل کوتیشن؛ مثل "ABCD".
  • integer یعنی عدد صحیح؛ مثل -1، 0، 5.
  • float یعنی عدد اعشاری؛ مثل 1.2 یا 42.42.
  • boolean یعنی درست یا نادرست؛ True یا False.
  • complex یعنی عدد مختلط؛ مثل 1.0 + 2.0j.

انواع داده در نامپای

نامپای علاوه بر این ها، انواع داده بیشتری دارد. برای هر نوع یک حرف کوتاه گذاشته است. این طوری آرایه ها سریع تر و کم حجم تر می شوند. این بخش قلب مبحث انواع داده در نامپای است.

  • i عدد صحیح (integer).
  • b مقدار بولی (boolean).
  • u عدد صحیح بدون علامت (unsigned integer).
  • f عدد اعشاری (float).
  • c عدد مختلط اعشاری (complex float).
  • m بازه زمانی (timedelta).
  • M زمان و تاریخ (datetime).
  • O شیء پایتون (object).
  • S رشته بایت محور (string).
  • U رشته یونیکد (unicode string).
  • V تکه ثابت حافظه برای نوع دیگر (void).

دیدن نوع داده آرایه با dtype

هر آرایه نامپای یک ویژگی به نام dtype دارد. این ویژگی نوع داده عناصر آرایه را به تو می گوید؛ مثل برچسب روی دفتر.

در مثال اول، نوع داده آرایه ای از عددهای صحیح را چاپ می کنیم.

import numpy as np

arr = np.array([1, 2, 3, 4])

print(arr.dtype)

مشاهده در ادیتور

حالا نوع داده آرایه ای از رشته ها را می بینیم. توجه کن که خروجی دیگر عددی نیست، بلکه نوع رشته ای مخصوص نامپای است.

import numpy as np

arr = np.array(["apple", "banana", "cherry"]) 

print(arr.dtype)

مشاهده در ادیتور

ساخت آرایه با نوع داده مشخص

تابع array() یک آرگومان اختیاری به نام dtype می گیرد. با آن می توانی از اول بگویی آرایه چه نوع داده ای داشته باشد؛ مثل این که از اول بگویی این دفتر فقط برای ریاضی است.

در این مثال، عددها را به رشته تبدیل می کنیم. پس dtype='S' می گذاریم.

import numpy as np

arr = np.array([1, 2, 3, 4], dtype="S")

print(arr)
print(arr.dtype)

مشاهده در ادیتور

برای نوع های i، u، f، S و U می توانی اندازه هم تعیین کنی. مثلا i4 یعنی عدد صحیح 4 بایتی.

در مثال بعد، آرایه ای می سازیم که نوع داده اش i4 باشد.

import numpy as np

arr = np.array([1, 2, 3, 4], dtype="i4")

print(arr)
print(arr.dtype)

مشاهده در ادیتور

وقتی تبدیل نوع داده ممکن نیست

اگر نوعی بدهی که بعضی مقدارها قابل تبدیل به آن نباشند، نامپای خطای ValueError می دهد. ValueError یعنی مقدارِ ورودی برای نوع موردنظر نامعتبر است؛ مثل این که بخواهی کلمه را در ماشین حساب جمع بزنی.

در این مثال، رشته 'a' را نمی شود به عدد صحیح تبدیل کرد. پس خطا می گیریم.

import numpy as np

arr = np.array(["a", "2", "3"], dtype="i")

مشاهده در ادیتور

تبدیل نوع داده روی آرایه موجود با astype()

بهترین راه برای تغییر نوع داده در نامپای استفاده از متد astype() است. این متد یک کپی جدید از آرایه می سازد و نوع داده آن را عوض می کند؛ آرایه اصلی دست نخورده می ماند.

در مثال اول، آرایه اعشاری را با پارامتر 'i' به آرایه عدد صحیح تبدیل می کنیم.

import numpy as np

arr = np.array([1.1, 2.1, 3.1])

newarr = arr.astype("i")

print(newarr)
print(newarr.dtype)

مشاهده در ادیتور

همین کار را می توانی با خود نوع پایتون هم انجام دهی. این بار به جای 'i' از int استفاده می کنیم.

import numpy as np

arr = np.array([1.1, 2.1, 3.1])

newarr = arr.astype(int)

print(newarr)
print(newarr.dtype)

مشاهده در ادیتور

در مثال سوم، عددهای صحیح را به نوع بولی تبدیل می کنیم. در نامپای، صفر تبدیل به False می شود و هر عدد غیر صفر تبدیل به True می شود.

import numpy as np

arr = np.array([1, 0, 3])

newarr = arr.astype(bool)

print(newarr)
print(newarr.dtype)

مشاهده در ادیتور

انواع داده در نامپای و ادامه مسیر یادگیری

اگر تازه با نامپای آشنا شده ای، پیشنهاد می کنم بعد از این صفحه، دوباره مقدمه نامپای را مرور کنی تا تصویر کلی در ذهنت محکم شود.

سپس می توانی سراغ صفحه برش آرایه در نامپای بروی تا ببینی این انواع داده در نامپای موقع برش آرایه ها چه کاربردی دارند.

هر وقت شک داشتی چه نوعی مناسب است، این صفحه انواع داده در نامپای مرجع سریع تو خواهد بود.

اگر دوست داری نسخه انگلیسی را هم ببینی، به صفحه NumPy Data Types در W3Schools سر بزن. برای توضیحات عمیق تر، مستندات رسمی NumPy Doc همیشه در دسترس است.

جمع بندی سریع

  • در نامپای، هر آرایه یک نوع داده مشخص و مهم دارد.
  • ویژگی dtype نوع داده آرایه را به تو نشان می دهد.
  • با پارامتر dtype در array() نوع آرایه را از اول تعیین کن.
  • با متد astype() نوع داده آرایه را ایمن و تمیز عوض کن.
  • ترکیب درست انواع داده در نامپای، سرعت و دقت کد را بالا می برد.