相关疑难解决方法(0)

如何正确保存和加载numpy.array()数据?

我想知道,如何numpy.array正确保存和加载数据.目前我正在使用该numpy.savetxt()方法.例如,如果我有一个数组markers,看起来像这样:

在此输入图像描述

我尝试通过以下方式保存它:

numpy.savetxt('markers.txt', markers)
Run Code Online (Sandbox Code Playgroud)

在其他脚本中,我尝试打开以前保存的文件:

markers = np.fromfile("markers.txt")
Run Code Online (Sandbox Code Playgroud)

这就是我得到的......

在此输入图像描述

保存的数据首先如下所示:

0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
Run Code Online (Sandbox Code Playgroud)

但是当我通过使用相同的方法保存刚加载的数据时,即.numpy.savetxt()它看起来像这样:

1.398043286095131769e-76
1.398043286095288860e-76
1.396426376485745879e-76
1.398043286055061908e-76
1.398043286095288860e-76
1.182950697433698368e-76
1.398043275797188953e-76
1.398043286095288860e-76
1.210894289234927752e-99
1.398040649781712473e-76
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?PS我没有其他"后台"操作.只需保存和加载,这就是我得到的.先感谢您.

python arrays numpy

75
推荐指数
3
解决办法
15万
查看次数

NumPy一次保存一些数组

我正在研究不同形状的数组,我想将它们全部保存起来numpy.save,所以,请考虑一下

mat1 = numpy.arange(8).reshape(4, 2)
mat2 = numpy.arange(9).reshape(2, 3)
numpy.save('mat.npy', numpy.array([mat1, mat2]))
Run Code Online (Sandbox Code Playgroud)

有用.但是当我有两个尺寸相同的矩阵时,它就不起作用了.

mat1 = numpy.arange(8).reshape(2, 4)
mat2 = numpy.arange(10).reshape(2, 5)
numpy.save('mat.npy', numpy.array([mat1, mat2]))
Run Code Online (Sandbox Code Playgroud)

它导致
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.array([mat1, mat2])而不是由numpy.save

我知道这样的阵列是可能的:

>> numpy.array([[[1, 2]], [[1, 2], [3, 4]]]) array([[[1, 2]], [[1, 2], [3, 4]]], dtype=object)

因此,所有我想要的是两个数组保存为mat1mat2一次.

python arrays numpy

19
推荐指数
1
解决办法
2万
查看次数

标签 统计

arrays ×2

numpy ×2

python ×2