Comment créer un tableau numpy de tout vrai ou tout faux?

En Python, comment créer un tableau numpy de forme arbitraire rempli de tout vrai ou tout faux?

117
demandé sur ziad mansour 2014-01-17 03:22:01

5 réponses

Numpy permet déjà la création de tableaux de tous les uns ou tous les zéros très facilement:

Par exemple numpy.ones((2, 2)) ou numpy.zeros((2, 2))

Puisque True et False sont représentés en Python comme 1 et 0, respectivement, il suffit de spécifier que ce tableau doit être booléen en utilisant le paramètre optionnel dtype et nous avons terminé.

numpy.ones((2, 2), dtype=bool)

Renvoie:

array([[ True,  True],
       [ True,  True]], dtype=bool)

Mise à jour: 30 octobre 2013

Depuis numpy version 1.8, nous pouvons utiliser full pour atteindre le même résultat avec une syntaxe qui montre plus clairement notre intention (comme le souligne fmonegaglia):

numpy.full((2, 2), True, dtype=bool)

Mise à jour: 16 janvier 2017

Depuis au moins numpy version 1.12, full convertit automatiquement les résultats en dtype du deuxième paramètre, donc nous pouvons simplement écrire:

numpy.full((2, 2), True)

156
répondu Michael Currie 2018-08-26 06:49:04
numpy.full((2,2), True, dtype=bool)
70
répondu fmonegaglia 2016-06-30 08:01:26

ones et zeros, qui créent des tableaux pleins de uns et de zéros respectivement, prennent un paramètre optionnel dtype:

>>> numpy.ones((2, 2), dtype=bool)
array([[ True,  True],
       [ True,  True]], dtype=bool)
>>> numpy.zeros((2, 2), dtype=bool)
array([[False, False],
       [False, False]], dtype=bool)
23
répondu user2357112 2014-01-16 23:24:00

S'il ne doit pas être accessible en écriture, vous pouvez créer un tel tableau avec np.broadcast_to:

>>> import numpy as np
>>> np.broadcast_to(True, (2, 5))
array([[ True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True]], dtype=bool)

Si vous avez besoin d'écriture, vous pouvez également créer un tableau vide et fill - le vous-même:

>>> arr = np.empty((2, 5), dtype=bool)
>>> arr.fill(1)
>>> arr
array([[ True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True]], dtype=bool)

Ces approches ne sont que des suggestions alternatives. En général vous devriez rester avec np.full, np.zeros ou np.ones comme le suggèrent les autres réponses.

7
répondu MSeifert 2017-04-15 12:16:30
>>> a = numpy.full((2,4), True, dtype=bool)
>>> a[1][3]
True
>>> a
array([[ True,  True,  True,  True],
       [ True,  True,  True,  True]], dtype=bool)

Numpy.plein (taille, valeur scalaire, Type). Il y a aussi d'autres arguments qui peuvent être passés, pour la documentation à ce sujet, Vérifiez https://docs.scipy.org/doc/numpy/reference/generated/numpy.full.html

-2
répondu nikithashr 2017-04-15 02:28:22