Python 将numpy数组追加到两个二进制文件中
我想创建两个二进制文件,以便在循环过程中将numpy数组附加到每个数组中。我编写了以下方法(我使用Python 2.7): 然而,我不断地发现这个错误:Python 将numpy数组追加到两个二进制文件中,python,python-2.7,numpy,Python,Python 2.7,Numpy,我想创建两个二进制文件,以便在循环过程中将numpy数组附加到每个数组中。我编写了以下方法(我使用Python 2.7): 然而,我不断地发现这个错误: Traceback (most recent call last): File "test.py", line 15, in <module> C = np.load("C.bin") File "/anaconda/lib/python2.7/site-packages/numpy/lib/npyio.py", l
Traceback (most recent call last):
File "test.py", line 15, in <module>
C = np.load("C.bin")
File "/anaconda/lib/python2.7/site-packages/numpy/lib/npyio.py", line 429, in load
"Failed to interpret file %s as a pickle" % repr(file))
IOError: Failed to interpret file 'C.bin' as a pickle
回溯(最近一次呼叫最后一次):
文件“test.py”,第15行,在
C=np.荷载(“C.bin”)
文件“/anaconda/lib/python2.7/site packages/numpy/lib/npyio.py”,第429行,已加载
无法将文件%s解释为pickle“%repr(文件))
IOError:无法将文件“C.bin”解释为pickle
我试图修好它,但我看不到更多的东西。感谢您的帮助
注意:我有意使用
np.load
,因为稍后我会将数据集从磁盘加载到numpy数组中进行进一步处理。您应该使用numpy中内置的save
方法将数组存储在文件中。下面是您的代码应该是什么样子:
for _ in range(5):
C = np.random.rand(1, 5)
r = np.random.rand(1, 5)
np.save('C', C)
np.save('r', r)
# Now printing to check if appending is successful
C = np.load("C.npy")
r = np.load("r.npy")
print (C)
print (r)
del C, r
请参阅文档谢谢您的回答。但这不是附加,而是重写!我在循环外打印了它,看起来它只保存了最后一个块hmm我得到了你的点@Medo,你可以创建一个数组数组并将其存储为一个数组。或者您可以使用
np.savez()
函数在同一个文件中存储多个项目,请检查sintax at Good提示。非常感谢
for _ in range(5):
C = np.random.rand(1, 5)
r = np.random.rand(1, 5)
np.save('C', C)
np.save('r', r)
# Now printing to check if appending is successful
C = np.load("C.npy")
r = np.load("r.npy")
print (C)
print (r)
del C, r