我在C中做一些矩阵处理,我想传递给Python程序/函数,它应该以Numpy数组的形式接受数据,并将一些东西传递回C程序。我看过Numpy arrays in Pybind11的文档,但我不清楚如何在C程序中创建缓冲区协议对象并将它们传递给Python程序,在C程序本身中调用。有什么方法可以做到这一点吗?
我在C中做一些矩阵处理,我想传递给Python程序/函数,它应该以Numpy数组的形式接受数据,并将一些东西传递回C程序。我看过Numpy arrays in Pybind11的文档,但我不清楚如何在C程序中创建缓冲区协议对象并将它们传递给Python程序,在C程序本身中调用。有什么方法可以做到这一点吗?
1条答案
按热度按时间omhiaaxx1#
这里有一个最小的例子,演示如何使用Pybind11将C++矩阵作为Numpy数组传递给Python。
C代码(Pybind11的C部分)
字符串
Python代码(Python部分使用C++函数)
型
运行代码步骤:
1.编译C++代码:使用C编译器和Pybind11将C代码编译成共享库,例如:
型
1.运行Python代码:简单地执行Python脚本,它会导入编译好的C模块,并使用函数将C矩阵转换为Numpy数组。
此示例提供了一个基本框架,可以根据应用程序的特定要求进行扩展。