我有一个 numpy 数组,我试图保存,但是
numpy.save()
每次我尝试使用它时都会中断。我需要做什么来保存数组?
我尝试了这段代码:
np.save(saveFile,vz[key1][key2][key3])
我收到以下错误:
TypeError: write() argument must be str, not bytes.
老实说,这没有任何意义,因为在早期的代码中,我使用同样的方法来保存不同的 numpy 数组。
我已经尝试过
json.dump()
和 pickle.dump()
并收到错误,我宁愿不使用它们,因为它们会带来其他问题。
数组看起来像这样:
这看起来应该是一个极其简单的保存。发生什么事了?
受我发现的旧帖子的启发,我尝试以“w”模式打开文件,并收到错误:
In [521]: f=open('foobar.npy','w')
In [522]: np.save(f, np.arange(10))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[522], line 1
----> 1 np.save(f, np.arange(10))
File <__array_function__ internals>:200, in save(*args, **kwargs)
File ~\miniconda3\lib\site-packages\numpy\lib\npyio.py:522, in save(file, arr, allow_pickle, fix_imports)
520 with file_ctx as fid:
521 arr = np.asanyarray(arr)
--> 522 format.write_array(fid, arr, allow_pickle=allow_pickle,
523 pickle_kwargs=dict(fix_imports=fix_imports))
File ~\miniconda3\lib\site-packages\numpy\lib\format.py:695, in write_array(fp, array, version, allow_pickle, pickle_kwargs)
659 """
660 Write an array to an NPY file, including a header.
661
(...)
692
693 """
694 _check_version(version)
--> 695 _write_array_header(fp, header_data_from_array_1_0(array), version)
697 if array.itemsize == 0:
698 buffersize = 0
File ~\miniconda3\lib\site-packages\numpy\lib\format.py:453, in _write_array_header(fp, d, version)
451 else:
452 header = _wrap_header(header, version)
--> 453 fp.write(header)
TypeError: write() argument must be str, not bytes