به آموزشگاه مجازی سینا خوش آمدید!

آموزش نوع داده‌ها در NumPy

امتیاز
(0)

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

  • 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. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال