convert class bytes values to double

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
hado
User
Beiträge: 3
Registriert: Samstag 25. Juli 2020, 18:23

Hallo allerseits,

Ich benötige Hilfe bei folgender Aufgabenstellung:

Aus einer Datenbankabfrage erhalte ich Daten in folgender Form:
b'P9\xecE\x05\xc0\ ... \xe8\xf9EC'

Die Ursprungsdaten sind 4096 double Werte.

Beim Type handelt es ich um class Bytes.
Die abfrage der länge ergibt 64072

Ich möchte nun die Daten in die ursprünglichen 4096 Werte konvertieren.
Wie mache ich das?

Viele Grüß
Hans
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum hast Du Binärdaten in einer Datenbank?
Du kannst numpy.frombuffer verwenden.
hado
User
Beiträge: 3
Registriert: Samstag 25. Juli 2020, 18:23

Bei den Daten handelt es sich um 4096 Pixeldaten (Double) aus einem Linearsensor. Bei der Datenbank handelt Es sich um SQLite der Daten Type ist BLOB. Die Daten werden So gespeichert wie vorgefunden. Performance Gründe vermute ich. Hast du ggf. ein Beispiel für mich.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hast du mal die Dokumentation zu dem Aufruf angeschaut? https://numpy.org/doc/stable/reference/ ... uffer.html

Was daran ist dir unklar?
hado
User
Beiträge: 3
Registriert: Samstag 25. Juli 2020, 18:23

Eurer Tip war hilfreich Danke.
Lösung: y = formbuffer(Data, dtype=ˋf´)
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Die Lösung wäre `Data` mindestens `data` zu schreiben, und für `y` auch einen besseren Namen zu finden. float ist der Default und muß nicht angegeben werden. Namen aus numpy werden üblicherweise per `import numpy as np` importiert und per `np.formbuffer` angesprochen, und nicht direkt importiert.
Antworten