Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将numpy二维数组作为一种二进制格式存储到磁盘上,并用C+读取+; 我有Python二维NUMPY数组,我想把它们转换成二进制格式,可以用C++读取,如你所知,C++中的二维数组是一种一维数组,带有两个指针,用来定位元素。您能告诉我python中的哪一个函数可以用来完成这项工作或任何其他解决方案吗?_Python_C++_Numpy_Data Structures - Fatal编程技术网

如何将numpy二维数组作为一种二进制格式存储到磁盘上,并用C+读取+; 我有Python二维NUMPY数组,我想把它们转换成二进制格式,可以用C++读取,如你所知,C++中的二维数组是一种一维数组,带有两个指针,用来定位元素。您能告诉我python中的哪一个函数可以用来完成这项工作或任何其他解决方案吗?

如何将numpy二维数组作为一种二进制格式存储到磁盘上,并用C+读取+; 我有Python二维NUMPY数组,我想把它们转换成二进制格式,可以用C++读取,如你所知,C++中的二维数组是一种一维数组,带有两个指针,用来定位元素。您能告诉我python中的哪一个函数可以用来完成这项工作或任何其他解决方案吗?,python,c++,numpy,data-structures,Python,C++,Numpy,Data Structures,这太长了,无法发表评论,但可能不够完整,无法单独运行。正如汤姆在你的问题的评论中提到的,使用一个保存和加载到一个定义良好的格式的库( HDF5, .Mat < /Cord>)在Python和C++中可能是最简单的解决方案。如果您不想查找和设置这样的库,请继续阅读 Numy能够使用numpy.save保存数据(请参阅), 格式(已描述)表示有一个标头,其中包含有关数据类型和数组形状数的信息,后跟数据。因此,除非您想要编写一个功能齐全的解析器(您不需要),否则您应该确保python以c顺序(fort

这太长了,无法发表评论,但可能不够完整,无法单独运行。正如汤姆在你的问题的评论中提到的,使用一个保存和加载到一个定义良好的格式的库(<代码> HDF5<代码>,<代码> .Mat < /Cord>)在Python和C++中可能是最简单的解决方案。如果您不想查找和设置这样的库,请继续阅读

Numy能够使用
numpy.save
保存数据(请参阅), 格式(已描述)表示有一个标头,其中包含有关数据类型和数组形状数的信息,后跟数据。因此,除非您想要编写一个功能齐全的解析器(您不需要),否则您应该确保python以c顺序(fortran顺序是另一个选项)一致地将数据保存为
float64
(或任何您想要的类型)

那么,C++代码只需要检查数组数据类型是“代码> FooLox64 < /Cord>,使用正确的排序,以及数组有多大。分配适当的内存量,您可以将该数量的字节从文件直接加载到分配的内存中。要创建2d索引,您需要为分配的内存中的每个“行”分配一个指针数组


或者只使用一个能为您处理所有这些的库。

我的建议:使用库。我自己使用HDF5,它既有Python也有C++接口。您也可以考虑相关的NETCDF。我还发现了一个更具实验性的图书馆。