晓查 发自 凹非寺
量子位 出品 | 公众号 QbitAI
假如你很“不幸”是一名从事机器学习开发的C++程序员,一定很羡慕Python,因为很多热门的软件包都是专门为Python开发。C++程序员只能看着眼馋,甚至包括最热门的NumPy也无法使用。
最近有个网友为广大C++程序员解决了一大痛点:
这就是C++版本的NumPy,名为NumCpp,是一位叫David Pilger的程序员开发的。从此用#include也能导入头文件,就像Python程序员用import一样容易。
二者除了语法上的差异,调用函数的名称也几乎一致。就算有什么不懂,你也可以去David的说明文档页查找具体用法。
以最基础的数组定义和初始化为例,NumCpp可以直接定义数组、改变数组形状、转换变量类型、生成对角矩阵等等。
从上图可以看出,NumPy和NumCpp调用的函数名称几乎完全一致,除了在定义数据类型上有一些差别。需要注意的是NumpCpp中的创建一个数组调用的是NdArray,而Python上用的是array。
如果需要更详细的了解两种工具包的差异。可以去下面的命名空间、数据结构索引中查看。
命名空间列表按照功能分类,命名空间成员则按照名称排序。数据结构也与之类似。
所有的头文件也汇总在这份文档中:
最后David给出了一段编程示例,调用了NumPy常用的函数,你也可以通过这段简短的程序大致了解NumCpp的基本用法。
【Example】
GitHub项目页:
https://github.com/dpilger26/NumCpp
完整版说明文档:
https://dpilger26.github.io/NumCpp