Angenommen, ich habe einen numpy
Vektor mit n
Elementen, so würde Ich mag Zahlen als binäre Schreibweise in diesem Vektor kodieren, so Shape wird (n,m)
wo m
log2(maxnumber)
zum Beispiel:numpy binäre Schreibweise schnelle Erzeugung
x = numpy.array([32,5,67])
Da max Zahl ich habe 67
ist, brauche ich numpy.ceil(numpy.log2(67)) == 7
Bits diesen Vektor zu kodieren, so Form des Ergebnisses wird (3,7)
sein
array([[1, 0, 0, 0, 0, 1, 1],
[0, 0, 0, 0, 1, 0, 1],
[0, 1, 0, 0, 0, 0, 0]])
Das Problem steigt, weil ich keine schnelle Möglichkeit habe, binäre Notation von
Funktion numpy.binary_repr
zu numpy Array zu verschieben. Jetzt muss ich über Ergebnis durchlaufen, und jedes Bit setzen haftend:
brepr = numpy.binary_repr(x[i],width=7)
j = 0
for bin in brepr:
X[i][j] = bin
j += 1
Es ist sehr timecost und dumme Art und Weise, wie sie effizienter machen?
Siehe http://stackoverflow.com/questions/22227595/convert-integer-to-binary-array -mit-geeignet-Polsterung –