在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]])
换句话说,我可以基于任意(不一定是连续的)索引列表进行切片。我如何在Breeze中做类似的事情?我正在寻找一些有效且优雅的东西。
答案 0 :(得分: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