私の研究結果の一部が含まれるはずの小さなWebプロジェクトを公開して、科学コミュニティに提示したいと考えています。これまでに実行したすべての分析は、python=で既に記述されているため、Django Webフレームワークを使用して結果を提供することを検討しました。これは、 Djangoで直接cronを使用して新しいデータの分析を実行できるように、最新のデータを視覚化する予定です。
これまでのところ、私の考えには実際に2つの質問があります。
numpy arrays
をsqliteに簡単に保存するには、どのタイプのDjangoデータベースフィールドが最適ですか?json.dump
numpy 2d-arrays
をd3.jsで処理できるようにする最良の方法は何ですか?ご覧のとおり、numpy + Django + d3.jsをまとめることが重要です。最初のハッキングは、numpyの結果を文字列として保存することでしたが、これはまったく最善とは言えません。データベースからプルした後、もう一度解析する必要があります。2番目の質問については、すでに[simplejson.dumps
]が見つかりましたが、残念ながら実際にはnumpy arrays
では機能しないため、このようなものをハックする必要が生じることがあります。
return HttpResponse('{"array1" : '+simplejson.dumps(list(array1))+'}')
私は実際には好きではありません。
もう一度まとめます:
numpy
構造体をDjangoデータベースフィールドに格納するための手法と、それらをhttp
に対してシリアル化する方法)
最良の解決策は、さらに多くの質問に依存します。例:
配列コンテンツについてDBをクエリする必要がありますか?
「はい」の場合、おそらく配列を文字列として保存し、文字列をクエリする必要があります(正規表現)。いいえの場合は、 cPickle を使用してシリアル化することを検討してください。 cPickleは高速で、単純な文字列より冗長ではありません。
とにかく、配列をテキストフィールドに配置する必要があります。
dBに書き込まれた後、pythonで配列を読み取ったり変更したりする必要がありますか?
「はい」の場合、cPickleが最適です。あなたはそれをdbから読み戻し、numpy配列を再作成し、読み取りまたは変更してから、配列をjsonとしてエンコードします。
「いいえ」の場合(および配列が極端に大きくない場合)、配列をjsonとして直接保存し、db-recordをそのままhttp-resposeに書き込みます。