Lua的NumPy和SciPy等价物是什么?

12

我在考虑学习Lua,了解到与Python相比,它是一种更小的语言,并且有一个高效的JIT编译器实现——LuaJIT。

我想知道是否可以像使用NumPy+SciPy一样使用Lua,同时,如果Lua有类似于NumPy+SciPy的东西,那么它是否也有类似于matplotlib的东西?


虽然这段摘要与主题无关,但是它听起来好像Python没有JIT编译实现。实际上有PyPy(也支持相当大且不断增长的NumPy子集)。 - user395760
好的,PyPy并不像LuaJIT那样快,而且我想学一门语言,我可以完全理解,并可能在某个时候实现一个“玩具”解释器。我知道有谎言、可恶的谎言和基准测试,但我相信shootout.alioth基准测试是可以信赖的。 - fedvasu
1
我并不是说学习另一种语言有什么问题 - 相反,我只是挑剔一下 :) - user395760
1
可能你会是唯一一个因为吹毛求疵而被我点赞的人。 - fedvasu
1
还要看一下 Torch(http://www.torch.ch/),它旨在成为Lua的类似Matlab的库,但也提供类似Theano的抽象。 - mrueg
4个回答

7

还有一件事,我发现Lua有类似于Scipy+matplotlib的东西,但是我不确定它的开发活跃度,最后发布日期是2011年1月。它叫做GSL-shell,它利用了GSL库并具有绘图功能,更像Matlab而不是Scipy+matplotlib。


6

numlua,但由于它依赖于BLAS/LAPACK、FFTW和HDF5,因此LuaJIT本身不会为使用numlua带来任何性能提升。


它能够与LuaJIT一起使用吗?就像numpy现在无法与pypy一起使用一样,尽管正在进行工作。Luarocks是类似于Lua的软件包管理器吗? - fedvasu
LuaJIT兼容Lua 5.1,包括C库接口,因此我认为您可以毫无问题地在LuaJIT中使用numlua。 - Doug Currie

5
我正在编写Lunum项目,该项目没有依赖项,可以用作共享模块或嵌入到其他C应用程序中。
它正在积极开发中,并被用于严肃的物理研究。它支持Numpy语义的一个很好的子集。数组切片将在下一个版本中准备好。 https://github.com/jzrake/lunum

它是否支持任意下界? - Vladimir F Героям слава
短句:我可以立即提供此功能。您需要吗?长句:这是一个很好的问题。Numpy并不支持,而我的一般意图是尽可能遵守Numpy的行为准则。然而!Fortran 90确实支持数组任意下限,并且从那种范例中借鉴听起来相当可行。顺便说一下,我从事计算流体力学,在其中有时希望将数组的下限设为负数,以强制执行“幽灵”区域的概念,其中应用边界条件。 - Jonathan Zrake
现在我意识到Lua + 也许Lunum可能是用户提供的代码部分的好方法。现在我正在尝试Scheme,但它并不理想。 - Vladimir F Героям слава
我不了解Scheme,但是从我的经验来看,Lua一直是科学应用程序构建的一个难以置信的工具。与Python不同的是,你可以完全控制解释器的构建方式,并且C API非常容易使用。我的研究代码将Lua用作一种美化的配置语言,但随着时间的推移,我会给Lua更多的控制权,使我的代码变得更像Lua扩展。它使用Lunum从应用程序内部检索数据,并通过HDF5执行后处理和I/O。 - Jonathan Zrake
GSL shell非常稳定可靠,但不是我所需要的。GSL shell旨在用作独立应用程序。我需要的是(1)易于嵌入C代码和(2)支持nd-arrays切片,主要用途是在C中核心物理求解器和更高级别的I/O或后处理例程之间传输数据。顺便说一句,GSL shell不包含带有切片的nd-array类,我想知道他们是否有兴趣合并Lunum。 - Jonathan Zrake
显示剩余3条评论

1
我建议您也可以看一下SciLua
一个基于LuaJIT的完整数值计算框架,结合了脚本语言(MATLAB、R等)的易用性和编译语言(C/C++、Fortran等)的高性能。

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