当前位置: 首页 > 工具软件 > NumCpp > 使用案例 >

从Numpy导出array,从Numcpp导入

端木兴国
2023-12-01

采用Numpy可以导出.npy的array文件,但是没有办法从Numcpp导入.npy文件。因此如果要实现导入导出,可以采用两种方法。一种是从Numpy导出.txt的array文件,这个文件会比较大;另一种是用Numpy导出.bin文件,bin文件体积较小,这种方法会损失array的维度,导入时需要修改array维度。详细代码如下:

1.导出.txt

Numpy:

pred_np = pred.long().cpu().numpy()
np.savetxt('pred_np.txt', pred_np)

之后在C++环境下导入txt文件,并赋值给nc::array.这边注意一开始先要声明一个float的array。

Numcpp:

nc::NdArray<float> flabel_hxyz = nc::zeros<float>(10, 10);//首先创建float数组,直接创建int或long会出问题
QString filename = ("./pred_np.txt");
flabel_hxyz(i, j) = ...

2.导出.bin

Numpy:

pred_np.tofile('pred_np.bin')

Numcpp:

auto label_hxyz = nc::load<long>("pred_np.bin");
label_hxyz.reshape({10, 10});//bin文件不保留维度信息,导入后只有一个维度,因此需要更改维度。

参考资料:

https://github.com/dpilger26/NumCpp/issues/102

 类似资料: