有没有办法将 numpy unicode 数组加载到 memmap 中?
Is there a way to load a numpy unicode array into a memmap?
我正在尝试创建一个 dtype='U'
的数组并使用 numpy.save()
保存它,但是,当尝试将保存的文件加载到 numpy.memmap
时,我收到与以下内容相关的错误大小不是 'U3'
的倍数
我正在与 python 3.5.2
合作。我尝试了以下代码,其中我创建了一个空数组和另一个包含 3 个条目的数组,所有条目的长度均为 3 个字母,然后将数组保存到 file1.npy
文件中。
import numpy as np
arr = np.empty((1, 0), dtype='U')
arr2 = np.array(['111', '222', '333'], dtype='U')
arr = np.concatenate((arr, arr2), axis = None)
print(arr)
np.save('file1', arr)
rArr = np.memmap('file1.npy', dtype='U3', mode='r')
但是,当我尝试将文件加载到 numpy.memmap
时,出现以下错误 ValueError: Size of available data is not a multiple of the data-type size.
有没有办法使用字符串将数据加载到 numpy.memmap
中?我觉得我缺少一些简单的东西。
numpy.memmap
are raw binary files, not NPY-format files. If you want to read a memory-mapped NPY file, use numpy.load
使用参数 mmap_mode='r'
(或任何其他合适的值)使用的文件。
像您一样创建 'file1.npy' 后,memory-mapped 和 numpy.load
可以是这样的:
In [16]: a = np.load('file1.npy', mmap_mode='r')
In [17]: a
Out[17]: memmap(['111', '222', '333'], dtype='<U3')
看起来 np.load
是你的朋友。
以下代码片段对我有用:
rArr = np.load('file1.npy', mmap_mode='r')
我正在尝试创建一个 dtype='U'
的数组并使用 numpy.save()
保存它,但是,当尝试将保存的文件加载到 numpy.memmap
时,我收到与以下内容相关的错误大小不是 'U3'
我正在与 python 3.5.2
合作。我尝试了以下代码,其中我创建了一个空数组和另一个包含 3 个条目的数组,所有条目的长度均为 3 个字母,然后将数组保存到 file1.npy
文件中。
import numpy as np
arr = np.empty((1, 0), dtype='U')
arr2 = np.array(['111', '222', '333'], dtype='U')
arr = np.concatenate((arr, arr2), axis = None)
print(arr)
np.save('file1', arr)
rArr = np.memmap('file1.npy', dtype='U3', mode='r')
但是,当我尝试将文件加载到 numpy.memmap
时,出现以下错误 ValueError: Size of available data is not a multiple of the data-type size.
有没有办法使用字符串将数据加载到 numpy.memmap
中?我觉得我缺少一些简单的东西。
numpy.memmap
are raw binary files, not NPY-format files. If you want to read a memory-mapped NPY file, use numpy.load
使用参数 mmap_mode='r'
(或任何其他合适的值)使用的文件。
像您一样创建 'file1.npy' 后,memory-mapped 和 numpy.load
可以是这样的:
In [16]: a = np.load('file1.npy', mmap_mode='r')
In [17]: a
Out[17]: memmap(['111', '222', '333'], dtype='<U3')
看起来 np.load
是你的朋友。
以下代码片段对我有用:
rArr = np.load('file1.npy', mmap_mode='r')