мне приходится иметь дело с большими данными (300 по 4 по 1400000 массива целых чисел), которая вокругКак создать булеву массив в NumPy
4byte * 300 * 4 * 1400000 = 6.72GB
Однако этот массив содержит только 0 или 1. Таким образом, если Я мог бы использовать логический массив, тогда размер уменьшился бы до 6,25% от исходных данных.
6.72GB/4bytes/8bits/bytes * 2 = 420Mbits
Есть ли способ использовать булевы массивы в numpy?
EDIT: Я не знаю, почему он удалил свой ответ, но это сделало именно то, что я хотел.
arr = np.ones((300,2,1400000), dtype = np.bool)
Это приводит к сжатию 12,5%.
>>> arr = np.ones((300,2,1400000), dtype = np.bool)
>>> arr.nbytes
840000000
>>> arr = np.ones((300,2,1400000))
>>> arr.nbytes
6720000000
840000000/6720000000 = 12.5%
«этот массив содержит только 0 или 1 ... каждый элемент имеет 2 бита» - Что, что? Как это сделать, чтобы представить это 2 бита? – user2357112