En Python, ¿cómo creo un conjunto de formas arbitrarias llenas de todo verdadero o todo falso?
numpy ya permite la creación de matrices de todos unos o todos ceros muy fácilmente:
por ejemplo numpy.ones((2, 2))
onumpy.zeros((2, 2))
Dado que True
y False
están representados en Python como 1
y 0
, respectivamente, solo tenemos que especificar que esta matriz debe ser booleana usando el dtype
parámetro opcional y hemos terminado.
numpy.ones((2, 2), dtype=bool)
devoluciones:
array([[ True, True],
[ True, True]], dtype=bool)
ACTUALIZACIÓN: 30 de octubre de 2013
Desde la versión 1.8 de numpy , podemos usar full
para lograr el mismo resultado con la sintaxis que muestra más claramente nuestra intención (como señala fmonegaglia):
numpy.full((2, 2), True, dtype=bool)
ACTUALIZACIÓN: 16 de enero de 2017
Como al menos la versión 1.12 de numpy , full
arroja automáticamente los resultados al dtype
segundo parámetro, por lo que podemos escribir:
numpy.full((2, 2), True)
a=np.ones((2,2))
seguido dea.dtype=bool
NO funciona.fuente
ones
yzeros
no construyen una matriz de enteros. Construyen una serie de bools directamente.numpy.full((2,2), True)
un equivalente?int 1
abool True
.ones
yzeros
, que crean matrices llenas de unos y ceros respectivamente, toman undtype
parámetro opcional :fuente
Si no tiene que ser grabable, puede crear una matriz con
np.broadcast_to
:Si lo necesita escribible, también puede crear una matriz vacía y
fill
usted mismo:Estos enfoques son solo sugerencias alternativas. En general, debe seguir
np.full
,np.zeros
onp.ones
como sugieren las otras respuestas.fuente
Rápidamente ejecuté un tiempo para ver si hay alguna diferencia entre la versión
np.full
ynp.ones
.Respuesta: no
Resultado:
IMPORTANTE
Con respecto a la publicación sobre
np.empty
(y no puedo comentar, ya que mi reputación es demasiado baja):No hagas eso. NO USE
np.empty
para inicializar unaTrue
matriz completaComo la matriz está vacía, la memoria no se escribe y no hay garantía de cuáles serán sus valores, p. Ej.
fuente
numpy.full (Tamaño, Valor escalar, Tipo). También se pueden pasar otros argumentos, para obtener documentación al respecto, consulte https://docs.scipy.org/doc/numpy/reference/generated/numpy.full.html
fuente
np.full
: ¡hace más de un año!