我正在寻找一个numpy函数,它将完成相同的工作:
indices = set([1, 4, 5, 6, 7])
zero = numpy.zeros(10)
for i in indices:
zero[i] = 42
Run Code Online (Sandbox Code Playgroud) 我想用SWIG包装一个C++函数,它接受一个STL字符串向量作为输入参数:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void print_function(vector<string> strs) {
for (unsigned int i=0; i < strs.size(); i++)
cout << strs[i] << endl;
}
Run Code Online (Sandbox Code Playgroud)
我想将它包装成一个名为`mymod'的模块中的Python函数:
/*mymod.i*/
%module mymod
%include "typemaps.i"
%include "std_string.i"
%include "std_vector.i"
%{
#include "mymod.hpp"
%}
%include "mymod.hpp"
Run Code Online (Sandbox Code Playgroud)
当我用这个扩展构建时
from distutils.core import setup, Extension
setup(name='mymod',
version='0.1.0',
description='test module',
author='Craig',
author_email='balh.org',
packages=['mymod'],
ext_modules=[Extension('mymod._mymod',
['mymod/mymod.i'],
language='c++',
swig_opts=['-c++']),
],
)
Run Code Online (Sandbox Code Playgroud)
然后导入它并尝试运行它,我收到此错误:
Python 2.7.2 (default, Sep 19 2011, 11:18:13)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type …Run Code Online (Sandbox Code Playgroud)