Тип данных uint32
Тип данных uint32 (unsigned integer 32-bit) в библиотеке NumPy представляет беззнаковое 32-битное целое число. Данный тип может хранить целые числа в диапазоне от 0 до 4 294 967 295. Он часто используется для работы с большими неотрицательными числами, индексами, хеш-значениями, пикселями изображений и идентификаторами, когда требуется экономия памяти по сравнению с 64-битными типами.
Синтаксис
np.dtype('uint32')
# или
np.uint32
Пример
Создадим массив из списка целых чисел и укажем тип uint32:
import numpy as np
arr = np.array([10, 20, 30, 40, 50], dtype=np.uint32)
print(arr)
print(arr.dtype)
Результат выполнения кода:
[10 20 30 40 50]
uint32
Пример
Попробуем создать массив с отрицательными числами. При использовании типа uint32, отрицательные значения будут интерпретироваться как беззнаковые и преобразовываться в соответствии с модульной арифметикой:
import numpy as np
arr = np.array([-1, 0, 1], dtype=np.uint32)
print(arr)
Результат выполнения кода:
[4294967295 0 1]
Пример
Рассмотрим граничные значения типа uint32. Максимальное значение равно 2^32 - 1, а минимальное - 0. При попытке выйти за пределы диапазона происходит переполнение:
import numpy as np
arr = np.array([2**32 - 1, 2**32, 2**32 + 1], dtype=np.uint32)
print(arr)
Результат выполнения кода:
[4294967295 0 1]
Пример
Тип uint32 можно использовать для создания массива из обычного списка чисел с последующим явным приведением типа через метод astype:
import numpy as np
arr = np.array([100, 200, 300, 400])
arr_uint32 = arr.astype(np.uint32)
print(arr_uint32)
print(arr_uint32.dtype)
Результат выполнения кода:
[100 200 300 400]
uint32
Пример
Выполним арифметическую операцию над массивом типа uint32. Сложение двух чисел в пределах допустимого диапазона работает корректно, а при переполнении результат вычисляется по модулю 2^32:
import numpy as np
arr1 = np.array([2**32 - 1, 100], dtype=np.uint32)
arr2 = np.array([1, 200], dtype=np.uint32)
res = arr1 + arr2
print(res)
Результат выполнения кода:
[0 300]