C++读取numpy数据二进制文件
生活随笔
收集整理的這篇文章主要介紹了
C++读取numpy数据二进制文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C++讀取numpy數據二進制文件
C++與Python中變量對應的精度類型:
https://docs.scipy.org/doc/numpy/user/basics.types.html#array-types-and-conversions-between-types
(1)將numpy數組保存為二進制文件
def save_bin(data, bin_file, dtype="double"):"""C++int對應Python np.intcC++float對應Python np.singleC++double對應Python np.double:param data::param bin_file::param dtype::return:"""data = data.astype(np.double)data.astype(dtype).tofile(bin_file)(2)用numpy讀取二進制文件
def load_bin(bin_file, shape=None, dtype="double"):""":param bin_file::param dtype::return:"""data = np.fromfile(bin_file, dtype=dtype)if shape:data = np.reshape(data, shape)return dataif __name__ == "__main__":bin_file = "data.bin"shape = (2, 5)data1 = np.arange(10, 20).reshape(shape)save_bin(data1, bin_file)data2 = load_bin(bin_file, shape)print(data1)print(data2)(3)用C++讀取二進制文件
#include <iostream> #include <fstream> using namespace std;int main() {int row=2;int col=5;double fnum[row][col] = {0};ifstream in("bin/data.bin", ios::in | ios::binary);in.read((char *) &fnum, sizeof fnum);cout << in.gcount() << " bytes read\n";// show values read from filefor(int i=0; i<row; i++){for(int j=0;j<col;j++){cout << fnum[i][j] << ",";}std::cout<<endl;}in.close();return 0; }輸出結果:
總結
以上是生活随笔為你收集整理的C++读取numpy数据二进制文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: conda重命名环境env
- 下一篇: onnx模型推理(python)