なぜこの配列をJavaScriptアレイのように見たいのかわからないので、私はあなたが望むように(私が自由に情報がなければ自由であるので)推測しています。あまりにも多くのフロントエンドプロセスにアレイを伝えることができました。ネットワークパイプ全体では、およそ400万の要素が依然として大量のデータです。だから、いつものように、問題の背景が役立つでしょう(そしてあなたの質問を編集してそれを提供することもできます)。
送信または保存のためにデータをシリアル化したい場合、JavaScriptに理解できる文字列としてレンダリングする最も簡単な方法(私は "見た目"の意味を知りませんでした)はjson
標準を使用していますとしょうかん。これはint、浮動小数点数、真理値および文字列のリストとディクテーションをネイティブにエンコードすることはできないため、行列をリストのリストとして表現するにはどうすればよいかという問題に直面しています。
小さな例ですが、これは暗闇の中のランダムなショットです。まず のはで動作するように設定し管理しやすいデータを作成してみましょう:
a = np.random.randn(4, 5)
これは、直接JSONで表現することはできません。むしろ、冗長(それはおそらく、オブジェクトのrepr
を呼んだ)が、分かりやすい結果として
import json
try:
json.dumps(a)
except Exception as e:
print "Exception", e
真のメッセージ
Exception array([[ 1.24064541, 0.97989932, -0.8469167 , -0.27318908, 1.21954134],
[-1.30172725, 0.41261504, 1.39895842, 0.75260258, -1.34749298],
[-0.38415007, -0.56925321, -1.59202204, 1.29900292, 1.91357277],
[ 1.06254537, 2.75700739, -0.66371951, 1.36906192, -0.3973517 ]]) is not JSON serializable
私たちがインタプリタにリストをリストに変換するよう頼んだら、配列オブジェクトのリストに変換する:その結果として
list(a)
番組リストにそれら配列を変換するために同じ関数を使用し
[array([ 1.24064541, 0.97989932, -0.8469167 , -0.27318908, 1.21954134]),
array([-1.30172725, 0.41261504, 1.39895842, 0.75260258, -1.34749298]),
array([-0.38415007, -0.56925321, -1.59202204, 1.29900292, 1.91357277]),
array([ 1.06254537, 2.75700739, -0.66371951, 1.36906192, -0.3973517 ])]
するリストの使用可能なリストを与える:
list(list(r) for r in a)
評価中
[[1.2406454087805279,
0.97989932000522928,
-0.84691669720415574,
-0.27318907894171163,
1.219541337120247],
[-1.3017272505660062,
0.41261503624079976,
1.3989584188044133,
0.75260257672408482,
-1.3474929807527067],
[-0.38415007296182629,
-0.56925320938196644,
-1.5920220380072485,
1.2990029230603588,
1.9135727724853433],
[1.0625453748520415,
2.7570073901625185,
-0.66371950666590918,
1.3690619178580901,
-0.39735169991907082]]
これは、私は、文字列に変換してここで行うJSONに極めてコンバーチブルです:
json.dumps(list(list(r) for r in a))
(文字列)を与える
'[[1.2406454087805279, 0.97989932000522928, -0.84691669720415574, -0.27318907894171163, 1.219541337120247], [-1.3017272505660062, 0.41261503624079976, 1.3989584188044133, 0.75260257672408482, -1.3474929807527067], [-0.38415007296182629, -0.56925320938196644, -1.5920220380072485, 1.2990029230603588, 1.9135727724853433], [1.0625453748520415, 2.7570073901625185, -0.66371950666590918, 1.3690619178580901, -0.39735169991907082]]'
を引き起こすあなたは結果が正しいことを確認することができますリストのリストを再構成し、配列と比較する(引数の1つがnumpy配列なので、比較は要素単位で行われる)。
s = json.dumps(list(list(r) for r in a))
lofls = json.loads(s)
lofls == a
array([[ True, True, True, True, True],
[ True, True, True, True, True],
[ True, True, True, True, True],
[ True, True, True, True, True]], dtype=bool)
私はあなたの質問を正しく理解しましたか?
予想される文字列は何ですか? –