8

私はいくつかの反復を経るコードを持っています。各反復で、コードはnumpyベースの配列を生成します。numpyベースの配列を既存のバイナリ.datファイルに追加します。次のコードを使用してデータを生成します。

WholeData = numpy.concatenate((Location,Data),axis=0)  
# Location & Data are two numpy arrays
DataBinary = open('DataBinary.dat','ab')
WholeData.tofile(DataBinary)
DataBinary.close()

バイナリファイル全体を配列に読み込もうとしています。私は次の問題を抱えています:

  1. 次のコードを試しました。

    NewData = numpy.array('f')
    File1 = open('DataBinary.dat','rb')
    NewData.fromstring(File1.read())
    File1.close()
    

    エラーステータス:

    トレースバック(最後の最後の呼び出し):ファイル ""、1行目、AttributeError:'numpy.ndarray'オブジェクトに属性'fromstring'がありません

  2. 配列ベースの配列を使用してから、ファイルを配列に読み込んでみました。

    from array import array
    File1 = open('DataBinary.dat','rb')
    NewData.fromstring(File1.read())
    File1.close()
    

ただし、NewData誤りがあります。つまり、と同じではありませんWholeDatanumpy.arrayデータをとして保存して読み取るarray.arrayのは良い選択肢ではないかもしれないと思います。

任意の提案をいただければ幸いです。

4

2 に答える 2

27

それnumpy.fromfileがあなたがここで望んでいることだと思います:

import numpy as np
myarray = np.fromfile('BinaryData.dat', dtype=float)

また、ドキュメントによると、これは「精度とエンディアンに関する情報が失われる」ため、データを保存する最良の方法ではないことに注意してください。つまり、dtype に渡されるデータ型が、最初にファイルに書き込んだものと互換性があることを確認する必要があります。

于 2012-08-03T15:37:59.183 に答える
-1

ファイルからリストにバイナリを読み取るには:

list_int = [ord(i) for i in fd.read()]
于 2014-10-17T16:59:51.197 に答える