0

在 Python 的 numpy 中,我可以这样做:

>>> import numpy as np
>>> m = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
>>> indices = [1,3]
>>> m[:,indices]
array([[ 2,  4],
       [ 6,  8],
       [10, 12]])

换句话说,我可以根据任意(不一定是连续的)索引列表进行切片。我怎样才能在微风中做类似的事情?我正在寻找一些高效且最好是优雅的东西。

4

1 回答 1

4

或多或少与 numpy 相同:

scala> import breeze.linalg._
import breeze.linalg._

scala> val m = DenseMatrix((1,2,3,4),(5,6,7,8),(9,10,11,12))
m: breeze.linalg.DenseMatrix[Int] =
1  2   3   4
5  6   7   8
9  10  11  12

scala> val indices = IndexedSeq(1,3)
indices: IndexedSeq[Int] = Vector(1, 3)

scala> m(::, indices)
res0: breeze.linalg.SliceMatrix[Int,Int,Int] =
2   4
6   8
10  12
于 2014-09-04T15:40:03.703 回答