有没有C++(或C)LIBs,它们有类似于NUMPY的数组,支持切片、矢量化操作、元素的元素添加和减go 等等?

推荐答案

以下是几款适合你需要的免费软件.

  1. GNU Scientific Library是用C编写的GPL软件.因此,它有一种类似C的分配和编程方式(指针等).用GSLwrap,你可以有一个C++编程的方式,同时仍然使用GSL.GSL有一个BLAS实现,但如果您想要更高的性能,可以使用ATLAS代替默认的CBLA.

  2. boost/uBLAS库是一个BSL库,用C++编写,并作为一个Boost包分发.这是实现BLAS标准的C++方式.uBLAS附带了一些线性代数函数,还有一个experimental binding to ATLAS.

  3. eigen是一个线性代数库,用C++编写,在MPL2许可下(从3.1.1版本开始)或LGPL3/GPL2(旧版本)分发.它是一种C++编程方式,但比其他两种更为集成(更多的算法和数据 struct 可用).与上述BLAS实现相比,Egen claims to be faster没有遵循事实上的标准BLAS API.Eigen似乎没有在并行实现上投入太多精力.

  4. Armadillo是C++的LGPL3库.它有LAPACK的绑定(numpy使用的库).它使用递归模板和模板元编程,这是一个很好的观点(我不知道其他库是否也在这样做?).

  5. xtensor是一个C++库,它是BSD许可证.它提供了一个非常类似于NUMPY的C++ API.参见https://xtensor.readthedocs.io/en/latest/numpy.html获取备忘单.

如果你只想得到数据 struct 和基本的线性代数,这些替代方案真的很好.根据您对样式、许可证或系统管理挑战的喜好(安装像LAPACK这样的大型库可能很困难),您可以 Select 最适合您需要的库.

Python-3.x相关问答推荐

PythonPandas 创建一个列并添加到DataFrame

正确的本地react 方式-Django身份验证

从Metacritic上通过网络擦除游戏数据的问题

当条件第一次出现时将行标记为True,如果按顺序重复则标记为False

Django 模型类方法使用错误的 `self`

比较和排序 DataFrame 两列中的值并在 python 中的同一行中排序

使用 iloc 或 loc 对多列进行过滤

Python 舍入数字不准确

如何沿单列获取嵌套列表中的唯一值?

将两列合并为一列,将它们制成字典 - pandas - groupby

如何通过 GitLab V4 api 列出 gitlab 项目中的所有项目变量

列出相同索引的Pandas

使用 selenium 加速网页抓取

非拉丁字符的Python正则表达式不起作用

两个Pandas数据框中的共同列列表

在python中基于列表理解的条件下跳过元素

逗号分隔列表的 argparse 操作或类型

Python3 mysqlclient-1.3.6(又名 PyMySQL)的用法?

变量类型注解NameError不一致

通过字典有效地替换Pandas 系列中的值