多个numpy数组与SWIG
我正在使用SWIG这个工具,把numpy数组从Python传递到C++代码中:
%include "numpy.i"
%init %{
import_array();
%}
%apply (float* INPLACE_ARRAY1, int DIM1) {(float* data, int n)};
class Class
{
public:
void test(float* data, int n)
{
//...
}
};
然后在Python中:
c = Class()
a = zeros(5)
c.test(a)
这个方法可以用,但我想知道怎么才能把多个numpy数组传递给同一个函数呢?
1 个回答
9
我从我的一个同事那里找到了答案:
%apply (float* INPLACE_ARRAY1, int DIM1) {(float* data1, int n1), (float* data2, int n2)};
class Class
{
public:
void test(float* data1, int n1, float* data2, int n2)
{
//...
}
};
现在有两个numpy数组被传递给Class::test这个类。