Тип uint16
Тип uint16 в библиотеке NumPy представляет собой шестнадцатиразрядное целое число без знака. Этот тип данных может хранить значения в диапазоне от 0 до 65535. Он занимает ровно 2 байта памяти, что позволяет эффективно использовать ресурсы при работе с большими массивами данных. Тип uint16 часто применяется для хранения изображений в градациях серого, аудиоданных и других числовых последовательностей, где значения не могут быть отрицательными.
Синтаксис
Тип данных uint16 указывается в качестве параметра dtype при создании массива:
np.array(object, dtype=np.uint16)
Пример
Создадим одномерный массив с явным указанием типа uint16:
import numpy as np
arr = np.array([1, 2, 3, 4, 5], dtype=np.uint16)
print(arr)
print(arr.dtype)
Результат выполнения кода:
[1 2 3 4 5]
uint16
Пример
Создадим двумерный массив и проверим его тип данных:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.uint16)
print(arr)
print("Itemsize:", arr.itemsize)
Результат выполнения кода:
[[1 2 3]
[4 5 6]]
Itemsize: 2
Каждый элемент массива занимает 2 байта, что подтверждает использование типа uint16.
Пример
При попытке присвоить отрицательное значение массиву типа uint16 возникает переполнение:
import numpy as np
arr = np.array([1, 2, 3], dtype=np.uint16)
arr[0] = -1
print(arr)
Результат выполнения кода:
[65535 2 3]
Отрицательное значение преобразуется в максимальное значение для данного типа, так как тип uint16 не поддерживает отрицательные числа.
Пример
Преобразуем массив из типа int32 в uint16 с помощью метода astype:
import numpy as np
arr_int = np.array([10, 20, 30, 40, 50], dtype=np.int32)
arr_uint = arr_int.astype(np.uint16)
print(arr_uint)
print(arr_uint.dtype)
Результат выполнения кода:
[10 20 30 40 50]
uint16
Пример
Используем константу np.iinfo для получения информации о типе uint16:
import numpy as np
info = np.iinfo(np.uint16)
print("Min:", info.min)
print("Max:", info.max)
print("Bits:", info.bits)
Результат выполнения кода:
Min: 0
Max: 65535
Bits: 16