بخش قبلی: نحوه دسترسی به عناصر آرایه
به صورت پیش فرض، دیتا تایپهای زیر در پایتون وجود دارند:
- String: برای ذخیرهسازی دادههای متنی استفاده میشود؛ متن را باید داخل کوتیشن یا دابل کوتیشن قرار دهیم.
- Integer: برای ذخیرهسازی اعداد صحیح استفاده میشود.
- Float: برای ذخیرهسازی اعداد اعداد حقیقی استفاده میشود.
- Boolean: برای نگههای مقادیر True یا False استفاده میشود.
- Complex: برای ذخیرهسازی اعداد مختلط استفاده میشود.
انواع دیتا تایپ در numpy
نامپای یک روش اختصاصی برای تعریف دیتا تایپها دارد و علاوه بر آن، چند دیتا تایپ اضافیتر از پایتون را شامل میشود. انواع داده در numpy با حرفهای انگلیسی نشان داده میشوند. در ادامه لیستی از دیتا تایپها در numpy و علامت اختصاری آنها را مشاهده میکنید:
- عدد صحیح – i
- بولین – b
- عدد صحیح بی علامت – u
- عدد حقیقی – f
- عدد مختلط – c
- تایم دلتا – m
- دیت تایم – M
- شیء – O
- رشته – S
- رشته یونیکد – U
- وُید – V
چک کردن دیتا تایپ یک آرایه
در کتابخانه numpy، آبجکت ndarray یک پراپرتی با نام dtype دارد که دیتا تایپ آرایه را بیان میکند. در قطعه کد زیر، دیتا تایپ آرایه چاپ میشود:
1 2 3 4 5 |
import numpy as np arr = np.array([1, 2, 3, 4]) print(arr.dtype) |
ساخت آرایه با دیتا تایپ مشخص با استفاده از numpy
در کتابخانه numpy با استفاده از تابع ()array میتوان آرایه جدید ساخت؛ این تابع، یک آرگومان اختیاری به اسم dtype میگیرد که دیتا تایپ دادههای آرایه را تعیین میکند. برای درک این موضوع به مثال زیر توجه نمایید:
1 2 3 4 5 6 |
import numpy as np arr = np.array([1, 2, 3, 4], dtype='S') print(arr) print(arr.dtype) |
برای دیتا تایپهای i | u | f | S و U، میتوان سایز هم تعریف کرد. مثلا در کد زیر، دادههای آرایه از نوع integer چهار بایتی هستند:
1 2 3 4 5 6 |
import numpy as np arr = np.array([1, 2, 3, 4], dtype='i4') print(arr) print(arr.dtype) |
تغییر دادن دیتا تایپ یک آرایه و ذخیره آن در آرایهای دیگر
بهترین راه برای تغییر دیتا تایپ آرایه و ذخیره آن در آرایهای دیگر، استفاده از متد ()astype است. این متد، دیتا تایپ را به عنوان آرگومان ورودی میگیرد و آرایه با دیتا تایپ جدید برمیگرداند. به مثال زیر توجه کنید:
1 2 3 4 5 6 7 8 |
import numpy as np arr = np.array([1.1, 2.1, 3.1]) newarr = arr.astype('i') print(newarr) print(newarr.dtype) |