نوع های داده ماژول نامپای در پایتون
NumPy چند نوع داده اضافی دارد و به انواع داده ها با یک کاراکتر، مانند i برای اعداد صحیح، u برای اعداد بدون علامت و غیره اشاره می کند.
در زیر لیستی از انواع داده ها و کاراکتر های مورد استفاده در ماژول NumPy آورده شده است:
- i : integer
- b : Boolean
- u : unsign integer
- f : float
- c : complex float
- m : timedelta
- M : datetime
- : object
- S : string
- U : Unicode string
- V : void
توجه داشته باشید که مقدار void یک نوع ثابت برای انواع داده های دیگر استفاده می شود.
شی آرایه NumPy دارای یک ویژگی به نام dtype است که نوع داده ای آرایه را برمی گرداند.
مثال: در زیر نوع داده ای آرایه با ویژگی dtype برگردانده شده است.
np
arr = np.array([1, 2, 3, 4])
print(arr.dtype)
مثال: در زیر نوع داده ای آرایه رشته ای زیر به دست آورده شده است
import numpy as np
arr = np.array(['apple', 'banana', 'cherry'])
print(arr.dtype)
ایجاد آرایه با نوع داده ای تعریف شده
ما از تابع array برای ایجاد یک آرایه استفاده می کنیم، این تابع می تواند یک آرگومان اختیاری به نام dtype بگیرد، که به ما اجازه می دهد نوع داده ای مورد انتظار عناصر آرایه را مشخص کنیم.
مثال: در زیر یک آرایه با مشخص کردن نوع داده برای شما آورده ایم
arr = np.array([1, 2, 3, 4], dtype='S')
print(arr)
print(arr.dtype)
برای i، u، f، S و U می توان اندازه را نیز تعیین کرد.
مثال: در زیر یک آرایه با 4 مقدار با نوع داده ای عدد صحیح ایجاد کرده ایم
arr = np.array([1, 2, 3, 4], dtype='i4')
print(arr)
print(arr.dtype)
اگر یک مقدار قابلیت تبدیل نداشته باشد، چه کار باید کرد؟
اگر یک نوع داده ای که عناصر آن قابلیت تبدیل به آن نوع مشخص شده را نداشته باشند، ایجاد کنیم، NumPy یک ValueError ایجاد می کند.
نکته: در پایتون زمانی خطای ValueError ایجاد می شود که عناصر آرایه با نوع داده ای آن همخوانی نداشته باشند.
مثال: در زیر یک خطا ایجاد شده است، چون مقدار ‘a’ را نمی توان به عدد صحیح تبدیل کرد.
arr = np.array(['a', '2', '3'], dtype='i')
تبدیل نوع داده در آرایه های موجود
بهترین راه برای تغیر نوع داده ای یک آرایه موجود، ایجاد یک کپی از آرایه با متد astype است.
تابع astype یک کپی از آرایه موجود ایجاد می کند و به شما امکان تغییر نوع داده ای آن را از طریق پارامتر می دهد.
نوع داده را می توان با استفاده از یک رشته مشخص کرد، مانند ‘f’ برای float، ‘i’ برای اعداد صحیح و غیره.
یا می توانید نوع داده را صریحا اعلام کنید، مانند int برای int، float برای float و غیره.
مثال: در زیر با استفاده از ‘i’ به عنوان پارامتر، نوع داده ای float را به integer تغییر داده ایم.
np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype('i')
print(newarr)
print(newarr.dtype)
مثال: در زیر با استفاده از ‘int’ به عنوان پارامتر، نوع داده ای float را به integer تغییر داده ایم.
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype(int)
print(newarr)
print(newarr.dtype)
مثال: در زیر نوع داده ای را از عددی به بولین تغییر داده ایم
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)