小编inv*_*ate的帖子

numpy函数将数组元素设置为给定索引列表的值

我正在寻找一个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)

python numpy variable-assignment indices

15
推荐指数
1
解决办法
2万
查看次数

SWIG包装C++ for Python:将字符串列表转换为STL字符串的STL向量

我想用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)

c++ python string swig vector

9
推荐指数
2
解决办法
9460
查看次数

标签 统计

python ×2

c++ ×1

indices ×1

numpy ×1

string ×1

swig ×1

variable-assignment ×1

vector ×1