2014-01-16 6 views

Antwort

126

numpy ermöglicht bereits die Erstellung von Arrays von allen Einsen oder allen Nullen sehr leicht:

z.B. numpy.ones((2, 2)) oder numpy.zeros((2, 2))

Da True und False in Python als 10 und dargestellt werden, die, haben wir nur dieses Array als Boolesche mit dem optionalen Parameter dtype zu werfen, und wir sind fertig.

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

kehrt:

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

UPDATE: 30. Oktober 2013

Seit numpy version 1.8 können wir full verwenden das gleiche Ergebnis mit Syntax, die deutlicher zeigt unsere Absicht zu erreichen (wie fmonegaglia hervorhebt):

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

UPDATE: 16. Januar 2017

numpy mindestens Da version 1.12, full automatisch Ergebnisse der dtype des zweiten Parameters wirft, so können wir nur schreiben:

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

+20

Haben Sie Ihre eigene Frage in der gleichen Minute beantwortet wie die Frage geschrieben wurde? – M4rtini

+13

@ M4rtini SO ermöglicht es Ihnen, eine Frage und eine Antwort gleichzeitig auf die Frage zu stellen. –

+1

dtype = int initialisiertes Array kann nicht für die Array-Elementauswahl verwendet werden. – Jichao

21

ones und zeros, die Arrays mit Einsen und Nullen erstellen, nehmen Sie optional dtype Parameter:

>>> 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) 
58
numpy.full((2,2), True, dtype=bool) 
+11

+1 Ich denke, das sollte die akzeptierte Antwort sein. Es erscheint natürlicher, ein Array mit Bools zu füllen, als es mit Zahlen zu füllen, um sie in Bools zu verwandeln. – Zelphir

+4

Die Antworten "Einsen" und "Nullen" konstruieren kein Array von ganzen Zahlen. Sie bauen direkt eine Reihe von Bools. – user2357112

+1

Ist 'numpy.full ((2,2), True)' ein Äquivalent? – Pavel

-2
>>> 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.full (Größe, Scalar Wert, Typ). Es gibt andere Argumente als auch die übergeben werden können, für die Dokumentation auf, dass, überprüfen https://docs.scipy.org/doc/numpy/reference/generated/numpy.full.html

+4

Nun, [eine andere Antwort] (http://Stackoverflow.com/a/35224478/5393381) bereits mit 'np.full' beantwortet - vor mehr als einem Jahr! – MSeifert

5

Wenn es nicht sein muss beschreibbar Sie ein solches Array mit np.broadcast_to erstellen:

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

Wenn Sie brauchen es beschreibbar Sie können auch ein leeres Array erstellen und fill it yourself:

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

Diese Ansätze sind nur alternative Vorschläge. Im Allgemeinen sollten Sie mit np.full, np.zeros oder np.ones wie die anderen Antworten vorschlagen.

Verwandte Themen