En Python, comment puis-je créer un tableau numpy de forme arbitraire rempli avec tous les vrais ou tous les faux?
numpy permet déjà la création de tableaux de tous les uns ou de tous les zéros très facilement:
par exemple numpy.ones((2, 2))
ounumpy.zeros((2, 2))
Puisque True
et False
sont représentés en Python comme 1
et 0
, respectivement, nous n'avons qu'à spécifier que ce tableau doit être booléen en utilisant le dtype
paramètre facultatif et nous avons terminé.
numpy.ones((2, 2), dtype=bool)
Retour:
array([[ True, True],
[ True, True]], dtype=bool)
MISE À JOUR: 30 octobre 2013
Depuis la version 1.8 de numpy , nous pouvons utiliser full
pour obtenir 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 la version numpy 1.12 , full
lance automatiquement les résultats vers dtype
le deuxième paramètre, nous pouvons donc simplement écrire:
numpy.full((2, 2), True)
a=np.ones((2,2))
suivi dea.dtype=bool
ne fonctionne PAS.la source
ones
etzeros
ne construisent pas un tableau d'entiers. Ils construisent directement un tableau de booléens.numpy.full((2,2), True)
un équivalent?int 1
àbool True
.ones
etzeros
, qui créent des tableaux remplis respectivement de uns et de zéros, prennent undtype
paramètre facultatif :la source
S'il n'a pas besoin d'être accessible en écriture, vous pouvez créer un tel tableau avec
np.broadcast_to
:Si vous en avez besoin, vous pouvez également créer un tableau vide et le créer
fill
vous-même:Ces approches ne sont que des suggestions alternatives. En général, vous devriez vous en tenir à
np.full
,np.zeros
ounp.ones
comme le suggèrent les autres réponses.la source
Exécuté rapidement un timeit pour voir s'il y a des différences entre la version
np.full
etnp.ones
.Réponse: non
Résultat:
IMPORTANT
Concernant le post sur
np.empty
(et je ne peux pas commenter, car ma réputation est trop basse):NE FAITES PAS CELA. NE PAS UTILISER
np.empty
pour initialiser unTrue
tableau completComme le tableau est vide, la mémoire n'est pas écrite et il n'y a aucune garantie, quelles seront vos valeurs, par exemple
la source
numpy.full (taille, valeur scalaire, type). Il existe également d'autres arguments qui peuvent être passés, pour la documentation à ce sujet, consultez https://docs.scipy.org/doc/numpy/reference/generated/numpy.full.html
la source
np.full
- il y a plus d'un an!référence pour la réponse de Michael Currie
la source