Иногда одним простым решением является использование пользовательского типа для ваших элементов матрицы. Исходя из диапазона нужных вам чисел, вы можете использовать руководство dtype
и специально меньше для ваших предметов. Поскольку Numpy по умолчанию считает объект наибольшим типом, во многих случаях это может быть полезно. Вот пример:
In [70]: a = np.arange(5)
In [71]: a[0].dtype
Out[71]: dtype('int64')
In [72]: a.nbytes
Out[72]: 40
In [73]: a = np.arange(0, 2, 0.5)
In [74]: a[0].dtype
Out[74]: dtype('float64')
In [75]: a.nbytes
Out[75]: 32
И с пользовательским типом:
In [80]: a = np.arange(5, dtype=np.int8)
In [81]: a.nbytes
Out[81]: 5
In [76]: a = np.arange(0, 2, 0.5, dtype=np.float16)
In [78]: a.nbytes
Out[78]: 8