Seite 1 von 1

convert class bytes values to double

Verfasst: Sonntag 26. Juli 2020, 12:21
von hado
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

Re: convert class bytes values to double

Verfasst: Sonntag 26. Juli 2020, 12:46
von Sirius3
Warum hast Du Binärdaten in einer Datenbank?
Du kannst numpy.frombuffer verwenden.

Re: convert class bytes values to double

Verfasst: Sonntag 26. Juli 2020, 12:57
von hado
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.

Re: convert class bytes values to double

Verfasst: Sonntag 26. Juli 2020, 13:11
von __deets__
Hast du mal die Dokumentation zu dem Aufruf angeschaut? https://numpy.org/doc/stable/reference/ ... uffer.html

Was daran ist dir unklar?

Re: convert class bytes values to double

Verfasst: Sonntag 26. Juli 2020, 17:12
von hado
Eurer Tip war hilfreich Danke.
Lösung: y = formbuffer(Data, dtype=ˋf´)

Re: convert class bytes values to double

Verfasst: Sonntag 26. Juli 2020, 19:20
von Sirius3
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.