You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by "Alexey Grigorev (JIRA)" <ji...@apache.org> on 2015/04/15 18:01:00 UTC
[jira] [Created] (MAHOUT-1691) iterable of vectors to matrix
Alexey Grigorev created MAHOUT-1691:
---------------------------------------
Summary: iterable of vectors to matrix
Key: MAHOUT-1691
URL: https://issues.apache.org/jira/browse/MAHOUT-1691
Project: Mahout
Issue Type: Improvement
Components: Math
Affects Versions: 0.10.1
Reporter: Alexey Grigorev
Priority: Minor
In Mahout scala bindings, instead of writing
{code}
val res = drmX.mapBlock(drmX.ncol) {
case (keys, block) => {
val copy = block.like
copy := block.map(row => (row - mean) / std)
(keys, copy)
}
}
{code}
I would like to be able to write
{code}
val res = drmX.mapBlock(drmX.ncol) {
case (keys, block) => {
keys -> block.map(row => (row - mean) / std)
}
}
{code}
Solution: add a method for implicit conversion from iterable to Matrix:
{code}
implicit def iterable2Matrix(that: Iterable[Vector]): Matrix = {
val first = that.head
val nrow = that.size
val ncol = first.size
val m = if (first.isDense) {
new DenseMatrix(nrow, ncol)
} else {
new SparseRowMatrix(nrow, ncol)
}
that.zipWithIndex.foreach { case (row, idx) =>
m.assignRow(idx.toInt, row)
}
m
}
{code}
If it sounds nice, I can send a pull request with this implemented
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)