如何将numpy数组发送到Armadillo(C++)并从Armadillo返回numpy数组

4

我想把一个numpy数组发送到Armadillo (C++),并从C++程序输出一个numpy数组。我在网上没有找到任何此方面的教程。有人可以指点一下我该如何做吗?


1
这非常相关... 例如,您使用的是什么包装工具? - Matthieu Brucher
1
你使用的是哪个包装工具? - Matthieu Brucher
pybind11似乎只支持Eigen。我想使用armadillo,但它的代码相对较长,对我来说将其翻译成Eigen有些困难。 - user7241499
@eacousineau 感谢您提供的信息,我会尝试这种方法。您能否看一下这个链接?https://stackoverflow.com/questions/54055530/error-no-matching-function-for-call-to-pybind11buffer-infobuffer-info - user7241499
FYI,这似乎也相关,但是针对原始的C扩展:https://dev59.com/apPfa4cB1Zd3GeqPCmQi - 它可能还有其他使用更高级封装的方法的参考。 - eacousineau
显示剩余6条评论
2个回答

2
你可以依赖于Cython和Numpy C接口进行数据转换。有不同的项目实现了这一点,包括armanpy,一个用于在Numpy和Armadillo之间进行转换的库,或mlpack,一个使用Armadillo作为其数据和线性代数后端的机器学习库。我发现最简单的方法是使用cyarma Python库,该库提供了如何从Cython中访问C++ Armadillo功能的简单示例。
如果你想要纯粹使用C++(不使用Cython),你可以使用boost库来实现转换。

-2

首先将numpy数组转换为C++数组,然后输入到Armadillo中并从输出中获取。


1
目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接