آموزش نوع دادهها در NumPy
پایتون به طور پیشفرض از نوع دادههای زیر برخوردار است:
- strings : از این نوع داده برای نشان دادن دادههای متنی(text) استفاده میشود. این متن باید در داخل یک جفت کوتیشن(علامت نقل قول) قرار داشته باشد. مثل "ABCD".
- integer : از این نوع داده برای نشان دادن اعداد صحیح استفاده میشود. مانند
-1و-2و-3. - float : از این نوع داده برای نشان دادن اعداد حقیقی استفاده میشود. مانند
1.2و42.5. - boolean : از این نوع داده برای نشان دادن مقادیر True یا Flase استفاده میشود.
- complex : از این نوع داده برای نشان دادن اعداد مختلط(complex) استفاده میشود. مانند
1.0 + 2.0jو1.5 + 2.5j.
نوعِ دادهها در NumPy
NumPy چند نوعِ دادهی اضافه دارد و با یک کاراکتر تکی، به نوعِ دادهها اشاره میکند؛ مثلاً از i برای اشاره به integers و از u برای اشاره به unsigned integers استفاده میکند و همین طور الی آخر.
در زیر، لیستی از تمام نوع دادههای NumPy و کاراکترهایی که به آنها اشاره میکنند نشان داده شده است.
- i - integer (عدد صحیح)
- b - boolean (بولین)
- u - unsigned integer
- f - float (عدد ممیز شناور)
- c - complex float
- m - timedelta
- M - datetime
- O - object (آبجکت)
- S - string (رشته)
- U - unicode string (رشته یونیکد)
- V - fixed chunk of memory for other type ( void )
بررسی نوعِ دادهی یک آرایه
آبجکت array در NumPy یک پروپرتی به نام dtype دارد که نوعِ دادهی آرایه را برمیگرداند:
مثال شماره 1
دریافت نوعِ دادهی یک آبجکت آرایه(array):
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr.dtype)
نتیجه:
int64
امتحان کنیدمثال شماره 2
دریافت نوع دادهی یک آرایه که حاوی رشته ها است:
import numpy as np
arr = np.array(['apple', 'banana', 'cherry'])
print(arr.dtype)
نتیجه:
<U6
امتحان کنیدایجاد آرایهها با یک نوعِ دادهی تعریف شده
ما از تابع array() برای ایجاد آرایهها استفاده میکنیم، این تابع میتواند یک آرگومان اختیاری به نام dtype داشته باشد که به ما امکان میدهد تا نوعِ دادهیِ موردِ انتظارِ عناصرِ آرایه را تعریف کنیم:
مثال شماره 3
ایجاد یک آرایه با نوع دادهی string (رشته ای):
import numpy as np
arr = np.array([1, 2, 3, 4], dtype='S')
print(arr)
print(arr.dtype)
نتیجه:
[b'1' b'2' b'3' b'4']
|S1
امتحان کنیدما میتوانیم برای نوعهای دادهی i و u و f و S و U ، سایز(size) را نیز مشخص کنیم:
مثال شماره 4
ایجاد یک آرایه با نوعِ دادهی عددِ صحیحِ 4 بایتی(integer):
import numpy as np
arr = np.array([1, 2, 3, 4], dtype='i4')
print(arr)
print(arr.dtype)
نتیجه:
[1 2 3 4]
int32
امتحان کنیداگر یک مقدار نتواند تبدیل(Converted) شود چه کاری باید انجام دهیم؟
اگر یک نوعِ داده داشته باشیم که عناصر آن نتوانند تغییر نوع(cast) داده شوند، آنگاه NumPy یک خطای ValueError را صادر خواهد کرد.
خطای ValueError: در زبان برنامه نویسی پایتون، خطای ValueError وقتی رخ میدهد که نوعِ آرگومان پاس داده شده به یک تابع، غیرمنتظره یا نادرست باشد.
مثال شماره 5
یک رشته مانند 'a' که یک عدد صحیح(integer) نیست، نمیتواند به یک عدد صحیح تبدیل شود(یک خطا ایجاد خواهد کرد):
import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')
نتیجه:
Traceback (most recent call last):
File "./prog.py", line 3, in
ValueError: invalid literal for int() with base 10: 'a'
امتحان کنیدتبدیل نوعِ داده در آرایههای موجود
بهترین راه برای تغییر دادنِ نوعِ دادهی یک آرایهی موجود، این است که با استفاده از متد astype() یک کپی از این آرایه ایجاد کنیم. متد astype() از آرایهی مورد نظر یک کپی ایجاد میکند و به ما امکان میدهد تا نوعِ دادهی مورد نظر را بعنوان یک پارامتر مشخص کنیم. نوعِ دادهای که گفتیم، را میتوانیم با استفاده از یک رشته مانند 'f' برای float (عدد ممیز شناور) یا 'i' برای integer(عدد صحیح) یا غیره، مشخص کنیم. یا میتوانیم نوعِ دادهی مورد نظر را مستقیماً با نوشتن float برای اعداد ممیز شناور و int برای اعداد صحیح(integer) مشخص کنیم.
مثال شماره 6
تغییر دادن نوعِ داده از float(عدد ممیز شناور) به عدد صحیح(integer) با استفاده از مقدار پارامتر 'i':
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype('i')
print(newarr)
print(newarr.dtype)
نتیجه:
[1 2 3]
int32
امتحان کنیدمثال شماره 7
تغییر دادن نوع داده از float (ممیز شناور) به integer (عدد صحیح) با استفاده از مقدار پارامتر int:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype(int)
print(newarr)
print(newarr.dtype)
نتیجه:
[1 2 3]
int64
امتحان کنیدمثال شماره 8
تغییر دادن نوع داده از integer(عدد صحیح) به بولین:
import numpy as np
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)
نتیجه:
[ True False True]
bool
امتحان کنید
منبع: www.w3schools.com/python/numpy
- بازدید: 71
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.