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"のようにフォーマットを指定する。
参考: