que - multiplicar matrices python numpy
¿Cómo crear una matriz de bits en Python? (4)
Consigue el módulo bitarray usando
pip install bitarray
Entonces, este código creará una matriz de bits de tamaño 6 millones,
from bitarray import bitarray
bit_array = bitarray(6000000)
Puedes inicializar todos los bits a cero usando
bit_array.setall(0)
Para establecer un bit en particular, diga bit 25, a 1, haga esto:
bit_array[25]=1
¿Cómo puedo declarar una matriz de bits de un tamaño muy grande, digamos 6 millones de bits?
El módulo de bitstring puede ayudar:
from bitstring import BitArray
a = BitArray(6000000)
Esto tomará menos de un megabyte de memoria, y es fácil de configurar, leer, dividir e interpretar bits. A diferencia del módulo bitarray, es puro Python, y además funciona para Python 3.
Consulte la documentación para más detalles.
Este one-liner convierte los bytes en una lista de valores de bit True / False. Es posible que no sea eficaz para 6M bits, pero para banderas pequeñas debería estar bien y no necesita dependencias adicionales.
>>> flags = bytes.fromhex(b"beef")
>>> bits = [flags[i//8] & 1 << i%8 != 0 for i in range(len(flags) * 8)]
>>> print(bits)
[False, True, True, True, True, True, False, True, True, True, True, True, False, True, True, True]
from bitarray import bitarray
a = bitarray(2**20)
Puede consultar más información sobre este módulo en http://pypi.python.org/pypi/bitarray/