小编use*_*504的帖子

计算矩阵未成年人的Numpy Routine?

我有兴趣使用numpy来计算给定方阵的所有未成年人.是否有一种使用数组切片的光滑方式来做到这一点?我想象一个人可以旋转列,删除最后一列,旋转结果矩阵的行并删除最后一行,但我没有在numpy文档中找到任何表明这是可能的.

(问:为什么会这样?答:我有一个相当大的矩阵的长序列{M_n},大约1,000,000 10,000 x 10,000个矩阵,我想计算每个矩阵的行列式.每个矩阵都是通过改变它的前身来获得的.计算序列中第一个矩阵的行列式,然后计算差值det(M_ {n + 1}) - det(M_n),这是变化的乘积,这将快得多.系数及其次要.)

python numpy

12
推荐指数
2
解决办法
4722
查看次数

为静态库编译SWIG Python包装器?

这是一个菜鸟问题.我正在尝试学习如何使用SWIG为C++库创建python接口.该图书馆是专有的第三方图书馆; 它以头文件(foo.h)和静态存档(libfoo.a)的形式出现在我面前.

为了简化问题,我已经制作了一个我认为具有相同病理的例子.反正相同的错误消息.

/* foo.hpp */
class TC {
    public:
       TC();
       int i;
    private:
};
Run Code Online (Sandbox Code Playgroud)

作为参考,这里是foo.c. 我只有真正的第三方库的头文件和存档文件.

/*foo.cxx */
#include "foo.hpp"
TC::TC() {
    i = 0;
}
Run Code Online (Sandbox Code Playgroud)

我通过打字创建了这个库 g++ -c foo.cxx && ar rcs libfoo.a foo.o

我的SWIG接口文件如下:

/* foo.i */ 
%module foo
%{
#include "foo.hpp"
%}
%include "foo.hpp"
Run Code Online (Sandbox Code Playgroud)

我输入生成foo_wrap.cxx

swig -python -c++ foo.i
Run Code Online (Sandbox Code Playgroud)

然后编译.

g++ -c -fPIC -I/usr/include/python2.6 foo_wrap.cxx 
g++ -shared -L. -lfoo -lpython2.6 -Wl,-soname,_foo.so foo_wrap.o -o _foo.so
Run Code Online (Sandbox Code Playgroud)

编译成功,但是当我运行Python时import foo,我得到一个未定义的符号错误.

>>> import foo
Traceback (most recent call last): …
Run Code Online (Sandbox Code Playgroud)

c++ python swig static-libraries undefined-symbol

1
推荐指数
1
解决办法
4320
查看次数

标签 统计

python ×2

c++ ×1

numpy ×1

static-libraries ×1

swig ×1

undefined-symbol ×1