Въведение в типовете данни NumPy
Типът на данните е атрибут, свързан с данните, който определя вида на стойностите, които данните могат да държат, вида операции, които могат да се извършват върху него и най-важното - количеството памет, необходимо от него. Някои от много често срещаните типове данни са цели, реални, логически и знакови. В тази статия ще направим опит да разберем различни типове данни, поддържани от Numpy. Numpy е пакет от питони, използван за научни изчисления. Тя е чисто написана на програмния език на С. Следователно можем да предположим, че типовете данни в Numpy са повече или по-малко надстройка на типовете данни на C.
Типове данни на Numpy
Различните типове данни, поддържани от numpy, са:
Numpy тип данни | Тясно свързан тип данни на C | Размер на съхранение | описание |
np.bool_ | булев | 1 байт | може да съдържа булеви стойности, като (True или False) или (0 или 1) |
np.byte | подписан чар | 1 байт | може да съдържа стойности от 0 до 255 |
np.ubyte | неподписан чар | 1 байт | може да съдържа стойности от -128 до 127 |
np.short | подписано кратко | 2 байта | може да съдържа стойности от -32, 768 до 32 767 |
np.ushort | неподписан къс | 2 байта | може да съдържа стойности от 0 до 65 555 |
np.uintc | неподписан вх | 2 или 4 байта | може да съдържа стойности от 0 до 65, 535 или 0 до 4 294 967 295 |
np.int_ | дълго | 8 байта | може да съдържа стойности от -9223372036854775808 до 9223372036854775807 |
np.uint | неподписан дълго | 8 байта | 0 до 18446744073709551615 |
np.longlong | много дълго | 8 байта | може да съдържа стойности от -9223372036854775808 до 9223372036854775807 |
np.ulonglong | неподписан много дълго | 8 байта | 0 до 18446744073709551615 |
np.half / np.float16 | - | позволява половин поплавък с точност с Формат: битов за подписване, 5 бита експонент, 10 бита мантиса |
|
np.single | поплавък | 4 байта | позволява единична поплавкова точност Формат: знак за бит, 8 бита експонент, 23 бита мантиса |
np.double | двойно | 8 байта | позволява двойна точност на поплавъка Формат: знак за бит, 11 бита експонент, 52 бита мантиса. |
np.longdouble | дълъг двоен | 8 байта | удължаване на поплавък |
np.csingle | плаващ комплекс | 8 байта | може да съдържа комплекс с реални и въображаеми части до еднопластов поплавък |
np.cdouble | двоен комплекс | 16 байта | може да съдържа комплекс с реални и въображаеми части до двойна точност поплавък |
np.clongdouble | дълъг двоен комплекс | 16 байта | удължаване на поплавъка за сложен номер |
np.int8 | int8_t | 1 байт | може да съдържа стойности от -128 до 127 |
np.int16 | int16_t | 2 байта | може да съдържа стойности от -32, 768 до 32 767 |
np.int32 | int32_t | 4 байта | може да съдържа стойности от -2, 147, 483, 648 до 2, 147, 483, 647 |
np.int64 | int64_t | 8 байта | може да съдържа стойности от -9223372036854775808 до 9223372036854775807 |
np.uint8 | uint8_t | 1 байт | може да съдържа стойности от 0 до 255 |
np.uint16 | uint16_t | 2 байта | може да съдържа стойности от 0 до 65 555 |
np.uint32 | uint32_t | 4 байта | може да съдържа стойности от 0 до 4, 294, 967, 295 |
np.uint64 | uint64_t | 8 байта | може да съдържа стойности от 0 до 18446744073709551615 |
np.intp | intptr_t | 4 байта | подписано цяло число, използвано за индексиране |
np.uintp | uintptr_t | 4 байта | неподписано цяло число, използвано за задържане на указател |
np.float32 | поплавък | 4 байта | точност с единичен поплавък |
np.float64 | двойно | 8 байта | двойна точност на поплавъка |
np.complex64 | плаващ комплекс | 8 байта | точност с единичен поплавък в сложни числа |
np.complex128 | двоен комплекс | 16 байта | двойна точност поплавък в сложни числа |
Примери за типове данни NumPy
Сега, нека разберем как се използва определен тип numpy данни.
Пример №1
Създаване на обект от тип данни
dt = np.dtype(np.int8)
изход:
Пример №2
Намиране на размера на типа данни
dt = np.dtype(np.int8)
name = dt.name
sizeoftype = dt.itemsize
print('name:', name, 'size:', sizeoftype)
изход:
Пример №3
Създаване на обект от тип данни с помощта на уникални символи за всеки тип данни
Всеки тип данни в numpy има асоцииран символен код, който уникално го идентифицира.
dt = np.dtype('i4')
изход:
Пример №4
Използване на типове данни за създаване на структуриран масив
employee_info = np.dtype((('name', 'S10'), ('age', 'i1'), ('salary', 'f4'), ('rating', 'f4')))
print(employee_info)
изход:
a = np.array((('Karthik', 31, 20000, 3.84), ('Rita', 25, 25123.34, 4.41)), dtype = employee_info)
print (a)
изход:
заключение
Numpy типове данни са повече или по-малко като типовете данни C. Те могат да бъдат грубо категоризирани в bool, байт, int, float, double и сложни. За добрите програмисти е необходимо да разберат как се съхраняват и манипулират данните. Това може да се постигне чрез ефективно разбиране на типовете данни.
Препоръчителни статии
Това е ръководство за типовете данни за NumPy. Тук обсъждаме как се използва определен тип напечени данни заедно с примерите. Може да разгледате и следните статии, за да научите повече -
- Какво е NumPy?
- Matplotlib In Python
- Типове данни на Python
- Речник на Python