sqliteデータベースにnumpy配列を格納する際に問題があります。私は名前とデータを持つ1つのテーブルを持っています。Pythonの問題でnumpy配列をsqlite3データベースに格納する
import sqlite3 as sql
from DIP import dip # function to caclculate numpy array
name = input('Enter your full name\t')
data = dip()
con = sql.connect('Database.db')
c = con.cursor()
c.execute("CREATE TABLE IF NOT EXISTS database(Name text, Vein real)")
con.commit()
c.execute("INSERT INTO database VALUES(?,?)", (name, data))
con.commit()
c.execute("SELECT * FROM database")
df = c.fetchall()
print(data)
print(df)
con.close()
すべてが細かいですが、データは、これに代えて保存されているとき:
[('Name', b'\xccX+\xa8.\x03\xa4?\xf7\xda[\x1f ..., x10l\xc7?\xbf\x14\x12\)]
これで問題は何ですか?
[('Name', 0.03908678 0.04326234 0.18298542 ..., 0.15228545 0.09972548 0.03992807)]
私はこれを持っていますかありがとうございました。
P.S.私はここからPython insert numpy array into sqlite3 databaseの解決策を試しましたが、うまくいきませんでした。私の数が少ない配列は、HOG(方向付けされた勾配のヒストグラム)を持つskimage(scikit-image)ライブラリから計算されています。たぶんそれは問題です... opencv3から計算して保存しようとしましたが、同じ問題があります。
リンク内のソリューションがどのように機能しなかったかを示す必要があります。何を試してみましたか?なにが問題だったの? – hpaulj
私は自分のデータ型を作成して変換し、データベースからデータを挿入して読み込むためにunutbuの答えを試しました。結果は上記の私の質問と同じでした。 numpyのndarrayをデータベースに保存しますが、読んだら何らかの形でエンコードされます。 – Eloah
配列のデータバッファのバイト表現を保存しているのだろうかと思います。この値を 'data.tostring()'と比較してください。 – hpaulj