Eingebaute Funktion in numpy, um eine Ganzzahl zu einer Reihe von booleschen Werten in einer bitweisen Weise zu interpretieren?

Ich frage mich, ob es eine einfache, integrierte Funktion in Python / Numpy für die Umwandlung eines Integer-Datentyps in ein Array / eine Liste von Booleans, entsprechend einer bitweisen Interpretation der Zahl bitte?

z.B:

x = 5 # ie 101 in binary print FUNCTION(x) 

Und dann würde ich gerne zurückkehren:

 [True, False, True] 

Oder idealerweise mit padding, um immer 8 boolesche Werte (dh ein Vollbyte) zurückzugeben:

 [False, False, False, False, False, True, False, True] 

Vielen Dank

2 Solutions collect form web for “Eingebaute Funktion in numpy, um eine Ganzzahl zu einer Reihe von booleschen Werten in einer bitweisen Weise zu interpretieren?”

Du kannst numpys unpackbits .

Aus den docs ( http://docs.scipy.org/doc/numpy/reference/generated/numpy.unpackbits.html )

 >>> a = np.array([[2], [7], [23]], dtype=np.uint8) >>> a array([[ 2], [ 7], [23]], dtype=uint8) >>> b = np.unpackbits(a, axis=1) >>> b array([[0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1, 1, 1], [0, 0, 0, 1, 0, 1, 1, 1]], dtype=uint8) 

Um zu einem bool-Array zu gelangen:

 In [49]: np.unpackbits(np.array([1],dtype="uint8")).astype("bool") Out[49]: array([False, False, False, False, False, False, False, True], dtype=bool) 

Nicht eine eingebaute Methode, aber etwas, um dich zu gehen (und Spaß zu schreiben)

 >>> def int_to_binary_bool(num): return [bool(int(i)) for i in "{0:08b}".format(num)] >>> int_to_binary_bool(5) [False, False, False, False, False, True, False, True] 
  • Durchschnittlich oder laufend
  • Filtersignal mit Python lfilter
  • Finde minimalen Abstand von Punkt zu komplizierter Kurve
  • Schnelles Berechnen von Eigenvektoren für jedes Element eines Arrays in Python
  • Höhere Ordnung lokale Interpolation von impliziten Kurven in Python
  • Wie man eine Chi-Quadrat Verteilung Tabelle zu bauen
  • Exponentielle Kurvenanpassung in SciPy
  • Undefinierte Symbole in Scipy und Scikit - lernen auf RedHat
  • Zusätzliche Argumente mit scipy.optimize.curve_fit übergeben?
  • Anbringen eines Exponenten in Python
  • Zuweisen von Menschen zu Betten - Ansätze zur Automatisierung
  • Python ist die beste Programmiersprache der Welt.