آموزش انواع داده ها در NumPy
آموزش انواع داده ها در NumPy
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش انواع داده ها در NumPy خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش پایتون
NumPy از انواع عددی بسیار بیشتری نسبت به پایتون پشتیبانی می کند. جدول زیر انواع مختلف داده های مقیاسی را که در NumPy تعریف شده اند نشان می دهد.
انواع داده | |
---|---|
1 | bool_
Boolean (درست یا غلط) به عنوان بایت ذخیره می شود |
2 | int_
نوع عدد صحیح پیش فرض (همان C طولانی ، به طور معمول یا int64 یا int32) |
3 | intc
یکسان با C int (به طور معمول int32 یا int64) |
4 | intp
عدد صحیح برای نمایه سازی استفاده می شود (همان C ssize_t ؛ به طور معمول یا int32 یا int64) |
5 | int8
بایت (-128 تا 127) |
6 | int16
عدد صحیح (-32768 تا 32767) |
7 | int32
عدد صحیح (-2147483648 تا 2147483647) |
8 | int64
عدد صحیح (-9223372036854775808 تا 9223372036854775807) |
9 | uint8
عدد صحیح بدون علامت (0 تا 255) |
10 | uint16
عدد صحیح بدون علامت (0 تا 65535) |
11 | uint32
عدد صحیح بدون علامت (0 تا 4294967295) |
12 | uint64
عدد صحیح بدون علامت (0 تا 18446744073709551615) |
13 | float_
مختصر برای float64 |
14 | float16
شناور نیمه دقیق: بیت علامت ، 5 بیت نمایشگر ، 10 بیت مانتیسا |
15 | float32
شناور دقیق: بیت علامت ، 8 بیت نمایشگر ، 23 بیت مانتیساmantissa |
16 | float64
شناور با دقت دو برابر: بیت علامت ، 11 بیت نمایشگر ، 52 بیت مانتیسا |
17 | complex_
Shorthand for complex128 |
18 | complex64
شماره پیچیده، نشان داده شده توسط دو شناور 32 بیتی (اجزای واقعی و خیالی) |
19 | complex128
شماره پیچیده ، نشان داده شده توسط دو شناور 64 بیتی (اجزای واقعی و خیالی) |
انواع عددی NumPy نمونه هایی از اشیا d dtype (نوع داده) هستند که هر یک دارای ویژگی های منحصر به فردی هستند. انواع مختلف به صورت np.bool_ ،np.float32 و غیره در دسترس هستند.
اشیا نوع داده (dtype)
یک نوع نوع داده، بسته به جنبه های زیر ، تفسیر بلوک ثابت حافظه مربوط به یک آرایه را توصیف می کند –
- نوع داده (عدد صحیح، شناور یا پایتون)
- اندازه داده ها
- ترتیب بایت
- در صورت نوع ساختار یافته، نام فیلدها، نوع داده هر فیلد و بخشی از بلوک حافظه گرفته شده توسط هر فیلد.
- اگر نوع داده زیر مجموعه باشد، شکل و نوع داده آن است
ترتیب بایت با پیشوند “<” یا “>” بر روی نوع داده تعیین می شود. “<” به معنای این است که کدگذاری اندکی است (کمترین مقدار در کوچکترین آدرس ذخیره می شود). “>” به معنای بزرگ بودن رمزگذاری است (مهمترین بایت در کوچکترین آدرس ذخیره می شود).
یک شی dtype با استفاده از نحو زیر ساخته می شود –
1 |
numpy.dtype(object, align, copy) |
پارامترها عبارتند از:
- شی – برای تبدیل به شی نوع داده
- تراز کردن – اگر درست باشد ، padding را به فیلد اضافه می کند تا شبیه C-strukture شود
- کپی – کپی جدیدی از شی dtype ایجاد می کند. در صورت نادرست ، نتیجه ارجاع به جسم نوع داده ساخته شده است
مثال 1
1 2 3 4 |
# using array-scalar type import numpy as np dt = np.dtype(np.int32) print dt |
خروجی به شرح زیر است –
1 |
int32 |
مثال 2
1 2 3 4 5 |
#int8, int16, int32, int64 can be replaced by equivalent string 'i1', 'i2','i4', etc. import numpy as np dt = np.dtype('i4') print dt |
خروجی به شرح زیر است –
1 |
int32 |
مثال 3
1 2 3 4 |
# using endian notation import numpy as np dt = np.dtype('>i4') print dt |
خروجی به شرح زیر است –
1 |
> i4 |
مثالهای زیر استفاده از نوع داده ساخت یافته را نشان می دهد. در اینجا ، نام فیلد و نوع داده مقیاس مربوطه باید اعلام شود.
مثال 4
1 2 3 4 |
# first create structured data type import numpy as np dt = np.dtype([('age',np.int8)]) print dt |
خروجی به شرح زیر است –
1 |
[('age', 'i1')] |
مثال 5
1 2 3 4 5 6 |
# now apply it to ndarray object import numpy as np dt = np.dtype([('age',np.int8)]) a = np.array([(10,),(20,),(30,)], dtype = dt) print a |
خروجی به شرح زیر است –
1 |
[(10 ،) (20 ،) (30 ،)] |
مثال 6
1 2 3 4 5 6 |
# file name can be used to access content of age column import numpy as np dt = np.dtype([('age',np.int8)]) a = np.array([(10,),(20,),(30,)], dtype = dt) print a['age'] |
خروجی به شرح زیر است –
1 |
[10 20 30] |
مثال 7
مثال های زیر نوع داده ای ساختاری به نام student را با فیلد رشته ای “name” ، یک قسمت عدد صحیح “age” و یک float “mark” را تعریف می کند. این نوع برای جسم ndarray اعمال می شود.
1 2 3 |
import numpy as np student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) print student |
خروجی به شرح زیر است –
1 |
[('name', 'S20'), ('age', 'i1'), ('marks', '<f4')]) |
مثال 8
1 2 3 4 5 |
import numpy as np student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student) print a |
خروجی به شرح زیر است –
1 |
[('abc' ، 21 ، 50.0) ، ('xyz' ، 18 ، 75.0)] |
هر نوع داده داخلی یک کد نویسه دارد که به صورت منحصر به فرد آن را مشخص می کند.
- ‘b’ – بولی
- ‘u’ – (امضا شده) عدد صحیح
- ‘تو’ – عدد صحیح بدون امضا
- ‘f’ – نقطه شناور
- ‘c’ – نقطه شناور پیچیده
- timedelta – m’
- ‘M’ – زمان کار
- ‘”O” اشیا – (پایتون)
- “S” ، “a” رشته – (بایت-)
- ‘U’ – یونیکد
- ‘V’ – داده های خام (باطل)
دیدگاه شما