Java FloatArrayをバイト配列に変換してPythonで読み込ませたいです。

Array<Array<FloatArray<>>> (300,300,600) のJava Arrayがあるとします。
この配列を以下のようにbytearrayに変換して、Python側でnp.frombuffer(input,dtype=np.float32)として読み込んだ後に、reshapeで元の(300,300,600)に戻そうと考えています。

# Java val baos = ByteArrayOutputStream() val dos = DataOutputStream(baos) for (i in 0 until 300){ for (j in 0 until 300){ for (k in 0 until 600) dos.writeFloat(out1[i][j][k]) } } } val out = baos.toByteArray() #Python np_array = np.frombuffer(input,dtype=np.float32).reshape(300,300,600)

JavaのFloatArrayを直接numpy配列に変換できる方法もいくつか試しましたが、今回の様に元の配列が大きなサイズだとnp.array()の変換に時間を要したので、他の方法を模索しています。

この方法だと、受け取ったデータが壊れており正しい値を得られません。
どこが間違っているのご指摘願えないでしょうか。
よろしくお願いいたします。

コメントを投稿

0 コメント