如何保存这个 numpy 数组?

问题描述 投票:0回答:1

我有一个 numpy 数组,我试图保存,但是

numpy.save()
每次我尝试使用它时都会中断。我需要做什么来保存数组?

我尝试了这段代码:

np.save(saveFile,vz[key1][key2][key3])

我收到以下错误:

TypeError: write() argument must be str, not bytes. 

老实说,这没有任何意义,因为在早期的代码中,我使用同样的方法来保存不同的 numpy 数组。

我已经尝试过

json.dump()
pickle.dump()
并收到错误,我宁愿不使用它们,因为它们会带来其他问题。

数组看起来像这样:

enter image description here

这看起来应该是一个极其简单的保存。发生什么事了?

python numpy save numpy-ndarray
1个回答
0
投票

受我发现的旧帖子的启发,我尝试以“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
© www.soinside.com 2019 - 2024. All rights reserved.