关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
去年关闭。
Improve this question
在我从事 Python 开发的这些年里,我总是惊讶于如果你设法重写那些循环通过你的 ndarray 并执行某些操作的代码,并且使用一次在整个数组上工作的 numpy 函数,事情变得如此之快。最近我越来越多地切换到 Node ,我正在寻找类似的东西。到目前为止,我已经发现了一些东西,但没有一个看起来很有希望:
据我所知,npms 可以用 C++ 编写,所以我想知道为什么没有类似 numpy 的 node.js 库。需要这种权力的社区是否对 Node 没有足够的兴趣?是否有希望 ES6 特性(列表推导)允许 javascript 编译器自动将原生 JS 代码矢量化为 C++ 速度?我可能还缺少其他东西吗?
编辑 ,作为对近距离投票的回应:注意,我不是在问“什么是做 xyz 的最佳包”。我只是想知道是否有技术原因没有在 Node 上执行此操作的包、社会原因或根本没有原因,而我只是错过了一个包。也许为了避免太多自以为是的批评,我想知道:我有大约 10000 个矩阵,每个矩阵都是 100 x 100。将它们加在一起的最佳(*校正,合理的快速)方法是什么?
编辑2
经过更多的挖掘,结果发现我在谷歌上搜索错误的东西。谷歌“node.js 科学计算”,有一些非常有趣的注释的链接:
基本上据我现在了解,到目前为止没有人打扰过。此外,由于 js TypedArrays 中存在一些重大遗漏(例如 64 位整数),因此仅使用 NPM 可能很难添加良好的支持,而不是破解引擎本身——这会破坏目的。再说一次,我没有进一步研究这最后的陈述。
最佳答案
不,对于 Node.js 和更普遍的 JavaScript 不存在类似 numpy 的包没有技术原因。
有两个主要障碍阻止 Node.js 和 JavaScript 在数据科学和数值计算社区中获得更多的思想份额。
第一个障碍是社区。尽管 JavaScript 社区很大,但在该社区中从事数字计算有趣事情的人却很少。因此,如果您想在 JavaScript 和 Node.js 中进行数值计算,那么在此过程中寻找资源来帮助您可能会很困难,而且可能会感觉像是一种孤独的努力。
其次,缺乏可比较的库(鸡和蛋:需要库来吸引库作者,需要作者来编写好的库)。库不能用 JavaScript 编写或利用 Node.js(例如,通过 native 插件)没有技术原因。我知道,因为我用 JavaScript 编写了许多数值计算库。因此,虽然在 JavaScript 中可以进行数值计算,但问题在于无法吸引具有足够专业知识并能够投入时间和精力编写高质量数值计算实现的开发人员。
关于OP中提到的特定语言功能:
我个人认为,某种形式的数值计算在 JavaScript 和 Node.js 中是不可避免的。进化力量的优势(普遍性、分布、性能)和潜在应用(边缘计算、集成机器学习、数据可视化)太强大了,以至于不支持数据科学应用,至少在基本层面上是这样。
披露 :我和其他人目前正在开展一个项目(https://github.com/stdlib-js/stdlib),该项目旨在提供 JavaScript 和 Node.js 中的数字计算工具。
关于javascript - 类似 numpy 的 Node 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31412537/