C++ 的 NumPy 风格数组? [关闭]

2024-03-24

是否有任何 C++(或 C)库具有类似 NumPy 的数组,支持切片、向量化操作、逐个元素添加和减去内容等?


这里有一些可能适合您需求的免费软件。

  1. The GNU 科学图书馆 http://www.gnu.org/software/gsl/是用C编写的GPL软件。因此,它具有类似C的分配和编程方式(指针等)。随着GSLwrap http://gslwrap.sourceforge.net/,您可以采用 C++ 编程方式,同时仍然使用 GSL。 GSL 有一个BLAS http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms实施,但你可以使用ATLAS http://math-atlas.sourceforge.net/如果您想要更多性能,请代替默认的 CBLAS。

  2. The 升压/uBLAS http://www.boost.org/doc/libs/1_49_0/libs/numeric/ublas/doc/index.htm库是一个 BSL 库,用 C++ 编写并作为 boost 包分发。它是实现 BLAS 标准的 C++ 方式。 uBLAS 附带了一些线性代数函数,并且有一个与 ATLAS 的实验结合 http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Linear_Algebra_With_UBLAS.

  3. eigen http://eigen.tuxfamily.org是一个用 C++ 编写的线性代数库,根据 MPL2 许可证(从版本 3.1.1 开始)或 LGPL3/GPL2(旧版本)分发。它是一种 C++ 编程方式,但比其他两种方式集成度更高(有更多算法和数据结构可用)。本征声称更快 http://eigen.tuxfamily.org/index.php?title=FAQ#How_does_Eigen_compare_to_BLAS.2FLAPACK.3F与上面的 BLAS 实现相比,但不遵循事实上的标准 BLAS API。 Eigen似乎并没有在并行实现上投入很多精力。

  4. 犰狳 http://arma.sourceforge.net/是用于 C++ 的 LGPL3 库。它有绑定LAPACK http://www.netlib.org/lapack/(numpy 使用的库)。它使用递归模板和模板元编程,这是一个好点(我不知道其他库是否也在这样做?)。

  5. xtensor https://github.com/QuantStack/xtensor是一个 BSD 许可的 C++ 库。它提供了与 NumPy 非常相似的 C++ API。看https://xtensor.readthedocs.io/en/latest/numpy.html https://xtensor.readthedocs.io/en/latest/numpy.html备忘单。

如果您只想获得数据结构和基本线性代数,这些替代方案非常好。根据您对风格、许可证或系统管理挑战的品味(安装像 LAPACK 这样的大型库可能很困难),您可以选择最适合您需求的一个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 的 NumPy 风格数组? [关闭] 的相关文章

随机推荐

  • 如何从 Azure DevOps 管道中的另一个作业访问 InvokeRestAPI 任务的响应?

    我正在尝试通过从 Azure DevOps 管道中调用 Elasticsearch 资源的 REST API 来自动部署 Elasticcloud 中的 Elasticsearch 资源 使用 InvokeRestAPI 任务调用 API
  • sed 是否阻塞?

    我的印象是 sed 没有阻塞 因为当我说 iostat sed sed在数据到达时对其进行处理 但是当我这样做时 iostat sed netcat Then sed blocks netcat 我对吗 sed当它不打印到终端时 将在缓冲模
  • OCIEnvCreate 失败,返回代码 1,但错误消息文本不可用

    我在这个异常中遇到了一些麻烦 我已经尝试过我看到的这个选项here https stackoverflow com questions 12901045 ocienvcreate failed with return code 1 but
  • ASP.NET Web 方法和 WCF 服务有什么区别?

    我是 Net 的新手 不明白其中的区别 有人能指出我正确的方向吗 ASP NET Web 服务是为构建通过 HTTP 使用简单对象访问协议 SOAP 发送和接收消息的应用程序而开发的 WCF 用于使 NET Framework 应用程序能够
  • 如何在Eclipse中找到被重写的方法?

    当我在 eclipse java 中查看一个方法时 如何跳转到它覆盖 扩展的方法 三种方法可以解决这个问题 超链接方式 鼠标 键盘 将鼠标悬停在覆盖的方法上时按 CTRL 键 您应该看到一个名为 打开超级实现 的选项 点击它 From he
  • 使用 CXF 拦截器进行错误处理 - 更改响应消息

    我正在尝试处理来自后端的错误 这handleMessage 如果发生错误但内容是 XmlMessage 的实例 则调用 我想将其更改为我自己的响应 只需设置响应代码并添加一些消息 我还没有找到任何合适的文档可以告诉我如何做到这一点 这些示例
  • 如何使用 UTC 时区偏移格式化 DateTime?

    这是什么类型的日期格式 2020 03 26T00 57 08 000 08 00 我在用着日期格式 https api flutter dev flutter intl DateFormat class html class DateTi
  • 生成 javadoc 作为 word 文档

    我们怎样才能将javadoc生成为word文档而不是传统的html页面呢 查看 doclet http doclet com http doclet com其中有大量自定义 javadoc 渲染的示例 即 PDF 等 并且还研究了 Apac
  • (ResourceGroupNotFound) 资源组“????”创建天蓝色媒体服务帐户时找不到

    我正在尝试使用此处的说明创建服务主体帐户 https learn microsoft com en us azure media services latest stream files tutorial with api examine
  • 脚本和样式元素的 HTML“nonce”属性的用途是什么?

    W3C 表示 HTML5 1 中有一个新属性 称为nonce for style and script可供网站的内容安全策略使用 我用谷歌搜索了一下 但最终没有明白这个属性实际上是做什么的 以及使用它时会发生什么变化 The nonce属性
  • 暂停和恢复 jmeter 执行

    我正在寻找暂停和恢复 JMeter 执行 单 多线程 的选项 1 Pausing and Resuming through command line 2 From the Jmeter UI 3 By coding in some lang
  • 如何创建 nggrid 自定义页脚

    我想为 ng grid 启用页脚 但我想完全自定义它并覆盖 ng grid 默认情况下的功能 基本上 我只想要网格底部的 加载更多 链接 该链接将根据 pagingOptions pageSize 设置的内容从服务器加载更多行 并将其附加到
  • 从 umbrello 中的 java 代码自动创建类图?

    我能够将 java 代码导入到 umbrello 中 但是 如何自动生成类图呢 也许雨伞可以not有那个功能 来自handbook http docs kde org stable en kdesdk umbrello code impor
  • Clojure中,函数、引用函数和尖引号函数之间的区别

    在 clojure 中 我想知道以下三者之间有什么区别 println map 1 2 3 4 5 6 println map 1 2 3 4 5 6 println map 1 2 3 4 5 6 结果是 5 7 9 4 5 6 5 7
  • 如何将 Express 响应对象传递给前端 JS 对象

    我的控制器正在通过 res render 将纬度 经度数据发送到我的车把视图 res render coords viewModel viewModel 包含一个对象数组 每个对象都包含位置名称 纬度和经度 我想获取这些信息并在我的视图中的
  • Google Play 控制台显示 Release not live

    通常 当应用程序在内部渠道中发布时 构建会立即得到反映 一分钟之内 但奇怪的是 即使一天后 构建也没有反映出来 我正在使用最新的 Google 控制台 其状态显示为 发布未上线 而不是 正在审核 您能帮助了解可能导致此情况的行为或情况吗 当
  • 在 Phonegap Build App (iOS/Android) 中打开外部链接

    我在用着音隙构建要部署 mi Apps 我正在使用科尔多瓦3 3 0版本 我想在本机浏览器中打开外部链接 安卓 iOS 我正在尝试使用InAppBrowser 插件科尔多瓦 但这对我不起作用 打开链接 但在应用程序内没有后退按钮 我见过这样
  • LDAP C++ API 选择 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在 Linux 下编写自己的 LDAP 客户端 特定于我们的本地环境 我很可能会使用 QT4 来提
  • 如何获取 MongoDB 集合中的最后一项?

    我有时使用 MongoDB 来执行各种快速插入或作为日志 但我在获取非常简单的查询 在 Mongo 中 我该如何获得类似于此 T SQL 的结果 SELECT TOP 1 date FROM Collection ORDER BY date
  • C++ 的 NumPy 风格数组? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何 C 或 C 库具有类似 NumPy 的数组 支持切片 向量化操作 逐个元素添加和减去内容等