从函数式语言访问numpy数组

jan*_*nto 5 python haskell functional-programming numpy scipy

我的主要语言是Python.通常,当我需要在numpy数组上执行一些cpu繁重的任务时,我使用scipy.weave.inline来连接c ++并获得很好的结果.

我怀疑许多算法(机器学习的东西)可以用函数式语言(scheme,haskell ......)编写得更简单.

我刚在想.是否可以从函数式语言访问numpy数组数据(读取和写入)而不必使用c ++?

Joe*_*ton 4

您可能会考虑使用某种共享内存数组。这个实现可能是一个很好的起点:https ://bitbucket.org/cleemesser/numpy-sharedmem/src

此实现旨在在 python 进程之间共享,但它使用命名共享内存来实现,因此您应该能够从任何其他进程访问相关的内存块。

我对 haskell 不太熟悉,无法给你这方面的任何建议,但我假设你可以使用指向共享内存缓冲区的指针作为 haskell 中某种数组......

  • 这可能是最简单的方法。创建一个在共享内存缓冲区上运行的 Haskell 进程相对容易。矢量包中的模块“Data.Vector.Storable”将为一维数组提供此功能(对于更高维度,也许 hmatrix 可以工作)。 (3认同)