Convertir una cadena a una matriz numpy

Tengo una cadena como mystr = "100110" (el tamaño real es mucho más grande) Quiero convertirla en una matriz mynumpy = [1, 0, 0, 1, 1, 0], mynumpy.shape = (6,0) como mynumpy = [1, 0, 0, 1, 1, 0], mynumpy.shape = (6,0) , sé que numpy tiene np.fromstring(mystr, dtype=int, sep='') pero el problema es que no puedo dividir mi cadena en cada dígito, así que numpy la toma como un número. ¿Alguna idea de cómo convertir mi cadena a una matriz numpy?

list puede ayudarte a hacer eso.

 import numpy as np mystr = "100110" print np.array(list(mystr)) # ['1' '0' '0' '1' '1' '0'] 

Si quieres obtener números en lugar de una cadena:

 print np.array(list(mystr), dtype=int) # [1 0 0 1 1 0] 

Podría leerlos como caracteres ASCII y luego restar 48 (el valor ASCII de 0 ). Esta debería ser la forma más rápida para cuerdas grandes.

 >>> np.fromstring("100110", np.int8) - 48 array([1, 0, 0, 1, 1, 0], dtype=int8) 

Alternativamente, puedes convertir la cadena a una lista de enteros primero:

 >>> np.array(map(int, "100110")) array([1, 0, 0, 1, 1, 0]) 

Edición : Hice un tiempo rápido y el primer método es más de 100 veces más rápido que convertirlo primero en una lista.