2016-03-01 41 views
1

我最近开始使用Elixir,一些模式让我想起Python,它在数据科学项目中被广泛使用。例如列表解析或匿名函数。Elixir for Data Science

考虑到Elixir的高性能以及运行多个进程和处理异步任务的能力,它接近我,非常适合Data Science项目。

我错过了一个观点吗?有人有这方面的经验吗?

+1

您正在将elixir的流程与真正的多处理混淆。 Elixir的进程是用于并发的抽象,而不是实际的操作系统进程。并发!=并行。 Elixir的地方更多的是协调输入/输出(这当然是一种简化)。还要考虑Python的数据科学工具集,numpy,pandas等等,都在C中进行了某种优化。关于Rob Pike https://www.youtube.com/watch的并发和并行性有一个很好的说法?v = cN_DpYBzKso – Ale

+1

我只是想将此添加到对话中:[Erlang VM上的科学计算](http://blog.lfe.io/tutorials/2015/01/01/1215-scientific-computing-on-the -erlang-vm /),用于Erlang生态系统的NumPy和SciPy的端口封装(等等)。 –

+0

没错,但那是使用Ports,所以它是用Python来与外部程序进行通信的。有人可能会问一些关于你想解决的特定问题的问题。你想实现自己的算法吗?如果是的话,我可能不会使用Elixir或Erlang。你想将数据科学“添加”到一些Elixir或Erlang项目中吗?那太棒了! – Ale

回答

1

数据科学是涉及很多事情的非常广泛的话题,我想添加我的2美分你确实可以在elixir中做数据科学,但它可能不像某些其他工具那样做某些事情,但是你我可以使用elixir进行数据清理和数据格式化。

但是也有一些与灵药做数据相关的东西其他人/二郎 https://moz.com/devblog/moz-analytics-db-free/并没有迪斯科,允许你用Erlang运行MapReduce作业 https://github.com/discoproject/disco

2

我使用正确的工具的倡导者工作。通常有两个要求做数据的科学:

  • 库(因为你不希望在每一个角落推倒重来)
  • 性能(特别是如果处理大量的数据)

Python和R是正确的工具。它们提供了大量高质量的库,虽然速度很慢,但它们的性能表现良好,这要归功于以C和Fortran等快速语言编写和优化的库。

有些像朱莉娅和斯卡拉的替代品。这些都是更快的语言,并且拥有相当数量的库,尽管您仍然可能遇到某些情况,在Python或R中可以使用合适的库,但是不能使用Julia或Scala。

有了像Elixir这样的语言,你绝大部分都是靠自己的。数据科学特定图书馆的数量是有限的,Elixir社区 - 尽管很棒 - 主要集中在分布式计算和网络开发上,所以不要指望在那里提供很多支持。

总之,可以吗?技术上是的,在试验中没有任何伤害,但是让你的生活变得更加困难。

请记住,与流行的看法相反,当涉及到单线程性能时,Elixir不是一种快速语言。根据手头的任务,您会发现Ruby在某些情况下速度更快,甚至更快。

不要误解我的意思,Elixir是一门出色的语言,它的功能非常出色,只是它不是我第一次接触数学计算的语言。

+0

很棒的回答。我刚刚从Ruby中移植到Elixir,并且意识到如果我想用数据科学来解决我的问题,我可能不得不短暂跳到Python。我考虑过R,但认为我可能会依赖我已经知道的。 –

相关问题