JSONで保存したい場合は以下のようにEncoderを定義する必要がある。
class NumpyEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, numpy.integer):
return int(obj)
elif isinstance(obj, numpy.floating):
return float(obj)
elif isinstance(obj, numpy.ndarray):
return obj.tolist()
else:
return super(NumpyEncoder, self).default(obj)
json_dump = json.dumps({'a': a, 'aa': [2, (2, 3, 4), a], 'bb': [2]}, cls=NumpyEncoder)
csvで保存する場合は np.savetxt を使う。サンプルは以下。
np.savetxt("test.csv", array.flatten(), fmt="%.0f")
注意点は以下。 * 2次元までしか保存出来ないので次元数がそれ以上の場合はflattenする。 * フォーマットを指定しないと2.0000000e1のように桁数がすごく多くなるのでfmt="%.0f"のようにフォーマットを指定する。
参考: