私は配列の異なる形状に取り組んでいくつかの配列を保存し、私はnumpy.save
でそれらすべてを保存したいので、私はそれが動作はnumpyのは、かつて
mat1 = numpy.arange(8).reshape(4, 2)
mat2 = numpy.arange(9).reshape(2, 3)
numpy.save('mat.npy', numpy.array([mat1, mat2]))
を持って検討してください。しかし、同じサイズの1つの次元を持つ2つの行列がある場合、それは機能しません。
mat1 = numpy.arange(8).reshape(2, 4)
mat2 = numpy.arange(10).reshape(2, 5)
numpy.save('mat.npy', numpy.array([mat1, mat2]))
それは
Traceback (most recent call last): File "<input>", line 1, in <module> ValueError: could not broadcast input array from shape (2,4) into shape (2)
を引き起こし、numpy.save
によってnumpy.array([mat1, mat2])
としないことによって生じた問題は、私は、そのような配列が可能であることを知っていることに注意してください:だから
>> numpy.array([[[1, 2]], [[1, 2], [3, 4]]]) array([[[1, 2]], [[1, 2], [3, 4]]], dtype=object)
、私が望むのは、twを節約することです配列をmat1
およびmat2
とした。
代わりにバイナリプロトコルで 'np.savez'またはpickleを使用することを検討しましたか? 'savez'は複数の配列を保存し、' save'は一つの配列だけを保存します。 –
私のコンピュータで動作します。どのバージョンのPythonを使用していますか? – CoMartel