通过 SWIG 将简单的 numpy 数组传递给 C
Posted
技术标签:
【中文标题】通过 SWIG 将简单的 numpy 数组传递给 C【英文标题】:Pass simple numpy array to C via SWIG 【发布时间】:2012-01-12 09:30:28 【问题描述】:我想通过 SWIG 将已知大小和类型的 numpy 数组传递给 C 函数
# .py
data = numpy.arange( N , dtype=numpy.int32 )
external_c_function( data )
# .i
extern void external_c_function( int32_t* data );
# .c
void external_c_function( int32_t* data)
// ...
不幸的是,我会得到一个错误:
TypeError: in method 'external_c_function', argument 1 of type 'int32_t *'
将 numpy 数组传递给 SWIG 的最简单方法是什么?
【问题讨论】:
【参考方案1】:您可以使用numpy.i
。看看http://www.scipy.org/Cookbook/SWIG_NumPy_examples
【讨论】:
以上是关于通过 SWIG 将简单的 numpy 数组传递给 C的主要内容,如果未能解决你的问题,请参考以下文章
SWIG:将 2d numpy 数组传递给 C 函数 f(double a[])
如何将复数从 python numpy 传递给 c(目前正在尝试使用 SWIG)
将简单的 java 数组传递给原始的 c-array swig