In [610]: d = {'x': [np.array([2, 3, 4]), np.array([5, 6, 7])], 'y': [np.array(
...: [1, 2, 3]), np.array([4, 5, 6])]}
In [611]: d
Out[611]:
{'x': [array([2, 3, 4]), array([5, 6, 7])],
'y': [array([1, 2, 3]), array([4, 5, 6])]}
In [613]: np.save('test.npy',d)
In [614]: np.load('test.npy')
Out[614]: array({'x': [array([2, 3, 4]), array([5, 6, 7])], 'y': [array([1, 2, 3]), array([4, 5, 6])]}, dtype=object)
だから辞書にsave
を呼び出し、それがオブジェクト型の配列で辞書をラップして、それを保存します。オブジェクト配列の要素はそれぞれのpickleメソッドで保存されます。だから、それは辞書とその辞書内のリストを漬けます。最後に、リスト内の配列は、np.save
のバージョンで削除されました。ネスティングがたくさんあります。しかし、それは動作します。
そしてitem
は、オブジェクト配列のうち、辞書を引くために使用することができます。
In [616]: dd=np.load('test.npy').item()
In [617]: dd
Out[617]:
{'x': [array([2, 3, 4]), array([5, 6, 7])],
'y': [array([1, 2, 3]), array([4, 5, 6])]}
直接pickle
を使用して:
In [626]: pickle.dump(d, open('test.pkl','wb'))
In [627]: np.load('test.pkl')
Out[627]:
{'x': [array([2, 3, 4]), array([5, 6, 7])],
'y': [array([1, 2, 3]), array([4, 5, 6])]}
In [629]: pickle.load(open('test.pkl','rb'))
Out[629]:
{'x': [array([2, 3, 4]), array([5, 6, 7])],
'y': [array([1, 2, 3]), array([4, 5, 6])]}
をこの辞書からcsv
を書くために私が作成したいです'x'と 'y'という名前のフィールドを持つ構造化配列です。しかし、私は配列を連結しなければならないと思うので、私は1d配列を生成することができます。 CSVファイルは、次のようになります。
x y
2 1
3 4
....
またはサブアレイはすべて同じ長さをしている場合は、まだCSVのルートを移動したい場合、私はいずれにおいても
x y
2 5 1 4
3 6 2 5
...
を生成することができるかもしれない
、あなた列の単純な行としてどのように値を表現するかを決める必要があります。
csvは使用しないでください。 pickleを使用してください(他のプログラムがpythonプログラムでもある場合は、else:JSONなどを使用してください)。 *編集:* numpy配列のリストだけの場合は、numpys docsを読んでください。[savez](https://docs.scipy.org/doc/numpy/reference/generated/numpy.savez)のような特別な記憶方法があります。 .html) – sascha
@サシャが正しいです。 https://wiki.python.org/moin/UsingPickle –
辞書全体をそのまま読み戻すことができますか? numpy値の中には、より複雑なfloat数があるものもあります。単純化のためintを使用しました。 – user3543300