c++ - GSL 中是否有 `numpy.minimum` 等价物?

标签 c++ numpy gsl

我正在努力将我在 Python 中“原型(prototype)化”的复杂数据分析例程移植到 C++。我在整个 Python 代码中广泛使用了 Numpy。我正在考虑在 C++ 端口中使用 GSL,因为它实现了我需要的所有各种数值例程(而 Armadillo、Eigen 等只有我需要的一个子集,尽管它们的 API 更接近我正在寻找的为了)。

在 GSL 中是否有等同于 numpy.minimum 的东西(即两个矩阵的元素最小值)?这只是我正在寻找的 Numpy 抽象的一个例子。使用 GSL 时,像这样的事情是否必须手动重新实现?我注意到 GSL 提供了以下内容:

double gsl_matrix_min (const gsl_matrix * m)

但这只是提供了整个矩阵的最小值。不管元素方面的比较如何,使用 GSL 报告单个矩阵的特定轴上的最小值似乎是不可能的。这让我很吃惊。

我的期望有误吗?

最佳答案

您可以通过 find() 在 Armadillo 中轻松实现元素最小化。和 .elem()功能:

mat A; A.randu(5,5);
mat B; B.randu(5,5);

umat indices = find(B < A);

mat C = A;
C.elem(indices) = B.elem(indices);

对于 Armadillo 中不存在的其他函数,可以通过 .memptr() 将 Armadillo 矩阵与 GSL 函数连接起来。功能。

关于c++ - GSL 中是否有 `numpy.minimum` 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19160595/

相关文章:

C++:从同一类的成员函数调用纯虚函数

c++ - 为什么 Google 风格指南规定系统标题出现在项目标题之前?

c++ - 根据 C++ 中的外部输入选择类

通过 numpy 数组进行复杂数学计算累积和的 Pythonic 方法

python - 用户警告 : converting a masked element to nan

c - GNU GSL BLAS 库, undefined symbol

wolfram-mathematica - 使用 GNU gsl 编写的 ODE 是否优于 Mathematica 的 NDSolve?

c - 使用 gsl 编写 Runge-Kutta ODE 求解器

c++ - 虚表指针

python - 数据类型传输/转换