C++中的NumPy风格数组?

120

是否有类似NumPy的数组支持切片、向量化操作、元素逐个相加和相减等功能的C++(或C)库?


3
Armadillo是一个C++线性代数库,提供了高效且易于使用的矩阵操作和线性代数函数。它支持快速的数值操作,并具有与MATLAB类似的语法。Armadillo还可以与其他C++库和框架集成,例如OpenBLAS和MPI。 - Oliver Charlesworth
2
我还没有在评论中看到Boost.MultiArray - Dmitry Ledentsov
8
这是一道非常有价值的软件编码问题。为什么被关闭了? - stackoverflowuser2010
1
@stackoverflowuser2010 因为很多好的问题在stackoverflow上被关闭了。 - kristjan
2
将NumPy Python代码转换为C++时,我发现std::valarray非常有帮助。它在标准库中,并支持对所有元素进行切片、算术操作以及两个valarrays之间的操作。 - Synck
显示剩余4条评论
13个回答

1

虽然 GLM 旨在与 OpenGL 和 GLSL 轻松配合,但它是一个完全功能的 C++ 头文件数学库,并具有非常直观的接口。

它声明了向量和矩阵类型以及它们的各种操作。

将两个矩阵相乘就像 (M1 * M2) 一样简单。减去两个向量 (V1-V2)。

访问向量或矩阵中包含的值同样简单。例如,在声明 vec3 向量后,可以使用 vector.x 访问其第一个元素。试试看。


0

Eigen 是一个用于线性代数(矩阵,向量等)的模板库。它只有头文件,并且可以免费使用(LGPL许可证)。


0

GSL非常棒,它可以完成你所要求的一切,还有更多功能。不过它是根据GPL许可证授权的。


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