小编Bre*_*nor的帖子

在Scala中读取整个文件?

在Scala中将整个文件读入内存的简单和规范方法是什么?(理想情况下,控制字符编码.)

我能想到的最好的是:

scala.io.Source.fromPath("file.txt").getLines.reduceLeft(_+_)
Run Code Online (Sandbox Code Playgroud)

或者我应该使用Java的一个令人难以置信的习语,其中最好的(不使用外部库)似乎是:

import java.util.Scanner
import java.io.File
new Scanner(new File("file.txt")).useDelimiter("\\Z").next()
Run Code Online (Sandbox Code Playgroud)

从阅读邮件列表讨论来看,我不清楚scala.io.Source甚至应该是规范的I/O库.我完全不明白它的目的是什么.

...我想要一些简单易记的东西.例如,在这些语言中,很难忘记这些成语......

Ruby    open("file.txt").read
Ruby    File.read("file.txt")
Python  open("file.txt").read()
Run Code Online (Sandbox Code Playgroud)

scala

302
推荐指数
10
解决办法
21万
查看次数

最成熟的稀疏矩阵包为R?

对于R,至少有两个稀疏矩阵包.我正在调查这些因为我正在使用太大而稀疏的数据集以适应具有密集表示的内存.我想要基本的线性代数例程,以及轻松编写C代码来操作它们的能力.哪个库最成熟,最好用?

到目前为止我发现了

  • Matrix有许多反向依赖,暗示它是最常用的.
  • SparseM没有那么多的反向deps.
  • 各种图库可能都有自己的(隐式)版本; 例如igraph网络(后者是statnet的一部分).这些太专业了,不能满足我的需求.

有人有这方面的经验吗?

通过在RSeek.org上搜索一下,Matrix包似乎是最常提到的一个.我经常认为CRAN任务视图是相当权威的,而多变量任务视图提到了Matrix和SparseM.

statistics r matrix sparse-matrix

29
推荐指数
2
解决办法
9002
查看次数

对象成员的Cython缓冲区声明

我想拥有一个带有NumPy成员的Cython"cdef"对象,并且能够使用快速缓冲区访问.理想情况下,我会做类似的事情:

import numpy as np
cimport numpy as np

cdef class Model:
  cdef np.ndarray[np.int_t, ndim=1] A

  def sum(self):
    cdef int i, s=0, N=len(self.A)
    for 0 <= i < N:
      s += self.A[i]
    return s

  def __init__(self):
    self.A = np.arange(1000)
Run Code Online (Sandbox Code Playgroud)

不幸的是,Cython无法编译这个错误Buffer types only allowed as function local variables.

我正在使用的解决方法是在分配给对象成员的新局部变量上声明缓冲区属性:

cdef class Model:
  cdef np.ndarray A

  def sum(self):
    cdef int i, s=0, N=len(self.A)
    cdef np.ndarray[np.int_t, ndim=1] A = self.A
    for 0 <= i < N:
      s += A[i]
    return s …
Run Code Online (Sandbox Code Playgroud)

python numpy cython

22
推荐指数
2
解决办法
3140
查看次数

标签 统计

cython ×1

matrix ×1

numpy ×1

python ×1

r ×1

scala ×1

sparse-matrix ×1

statistics ×1