我刚刚开始在Scala中使用Breeze,并且我正在尝试从DenseMatrix中提取列,其中我想要提取的列索引在列表中。例如,如果要从Python中的numpy数组myArray中提取列1、3和6,则可以编写
myArray[:,[1,3,6]]在布雷兹,我也尝试过类似的方法
myArray(::,(1,3,6))但是它会产生语法错误。我看过微风线性代数备忘单,但是我只看到了提取单个列或连续列的功能。是否有任何方法可以直接指定我想要提取的列,如我的示例所示?
发布于 2014-11-12 12:38:21
我也遇到了同样的问题,我发现的解决办法是从微风中导入数字和直线图:
import breeze.numerics._在您找到的备忘单顶部提到了它,但是它很容易被忽略,特别是如果您已经搜索了一个特定的操作(发生在我身上的事情)。
发布于 2018-02-23 07:35:03
我们指定一个密集矩阵"dm“,其内容如下:
import breeze.linalg._
val dm = DenseMatrix((0,1,2,3,4,5,6,7),
(8,9,10,11,12,13,14,15),
(16,17,18,19,20,21,22,23),
(24,25,26,27,28,29,30,31))
dm
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31如果我们想提取矩阵的列(例如,1,3,6),我们可以用列索引来提取矩阵的一部分。
dm(::,IndexedSeq(1,3,6))
1 3 6
9 11 14
17 19 22
25 27 30或行索引
dm(IndexedSeq(1,3),::)
8 9 10 11 12 13 14 15
24 25 26 27 28 29 30 31谢谢。请随时评论
https://stackoverflow.com/questions/24418576
复制相似问题