如何将 numpy 二维数组作为一种可以用C++读取的二进制格式存储在磁盘上
How to store numpy two dimensional array onto disk as a kind of binary format which can be read with C++
我有python二维numpy数组,我想将它们更改为可以用C++读取的二进制格式,如您所知,C++中的二维数组是一种带有两个指针的一维数组,用于定位元素。你能告诉我python中的哪个函数可以用来完成这项工作或任何其他解决方案吗?
这对于评论来说太长了,但可能不够完整,无法自行运行。 正如 Tom 在评论您的问题时提到的,使用一个在 python 和 C++ 中保存并加载到明确定义的格式(hdf5
、.mat
(的库可能是最简单的解决方案。 如果您不想查找和设置这样的库,请继续阅读。
Numy 能够使用numpy.save
保存数据(请参阅此内容(, 格式(此处描述(声明有一个标题,其中包含有关数据类型和数组形状数量的信息,后跟数据。 因此,除非你想编写一个功能齐全的解析器(你不想(,否则你应该确保python始终如一地将数据保存为float64
(或任何你想要的类型(,以c顺序(fortran排序是另一种选择(。
然后,C++代码只需要检查数组数据类型是否float64
,是否使用了正确的排序,以及数组的大小。 分配适当的内存量,您可以将文件中的字节数直接加载到分配的内存中。 要创建 2D 索引,您需要为分配内存中的每个"行"分配一个指针数组。
或者只是使用一个可以为您处理所有这些的库。
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 无法找到/读取配置文件.conf-FileIOException
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++将文本文件中的数据读取到结构数组中
- 正在将csv文件读取为双精度矢量
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 为什么在读取文件大小时文件IO速度会发生变化
- 正在读取二进制文件(is_open)
- 如何在c++中从文本文件中逐行读取整数
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- 独立读取-修改-写入顺序
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 一种在C++中读取TXT配置文件的简单方法