NumPy Data Types

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

به صورت پیش‌فرض پایتون دارای نوع داده‌های زیر است:

  • strings: جهت معرفی داده‌های متنی استفاده می‌شود. متن را داخل علامت نقل قول می‌نویسند. مانند "ABCD"
  • integer: جهت معرفی اعداد صحیح استفاده می‌شود. مانند 1-, 2-, 3
  • float: جهت معرفی اعداد حقیقی استفاده می‌شود. مانند 1.2, 34.56
  • boolean: جهت معرفی True یا False
  • complex: جهت معرفی اعداد مختلط استفاده می‌شود. مانند j0.1 + 2.0

انواع داده در NumPy

NumPy دارای چند نوع داده اضافی است و تنها با استفاده از یک کاراکتر به نوع داده اشاره می‌کند. مانند i برای اعداد صحیح، u برای اعداد صحیح بدون علامت و ...

در زیر لیستی از همه انواع داده در NumPy و کاراکتر معرفی کننده آن‌ها آمده است.

  • i: اعداد صحیح
  • b: بولین
  • u: اعداد صحیح بدون علامت
  • f: اعداد حقیقی
  • c: اعداد مختلط
  • m: زمان (timedelta)
  • M: تاریخ و زمان (datetime)
  • O: شیء (object)
  • S: رشته
  • U: رشته یونیکد
  • V: بخش ثابت و زیادی از حافظه برای سایر انواع (void)

بررسی نوع داده یک آرایه

شیء آرایه NumPy یک خصوصیت به اسم dtype دارد، که نوع داده آرایه را برمی‌گرداند.


import numpy as np

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

print(arr.dtype)

خروجی:

ایجاد آرایه‌ها با تعیین نوع داده

با استفاده از تابع array() آرایه‌ها را ایجاد می‌کنیم. این تابع دارای یک آرگومان اختیاری dtype است که به ما این امکان را می‌دهد تا نوع داده مورد انتظار عناصر آرایه را تعیین کنیم.


import numpy as np

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

print(arr)
print(arr.dtype)

خروجی:

برای i, u, f, S و U می‌توانیم اندازه را هم تعیین کنیم.

در کد زیر یک آرایه با نوع داده عدد صحیح و اندازه 4 بایت ایجاد شده است.


import numpy as np

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

print(arr)
print(arr.dtype)

خروجی:

در صورتی که عناصر آرایه نتوانند به نوع تعیین شده تبدیل شوند با خطای زیر مواجه خواهیم شد.

ValueError: In Python ValueError is raised when the type of passed argument to a function is unexpected/incorrect

مانند کد زیر

import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')

تبدیل نوع داده روی آرایه‌های موجود

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

نوع داده را می‌توانید به صورت تک کاراکتر، مانند i برای اعداد صحیح و یا به صورت استفاده مستقیم از نوع داده‌های پایتون، مانند float برای اعداد حقیقی تعیین کنید.


import numpy as np

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

newarr = arr.astype('i')

print(newarr)
print(newarr.dtype)

خروجی: