【发布时间】:2017-12-05 23:54:55
【问题描述】:
我有一个 1 列 x 行的 SciPy csr_matrix(在这种情况下是一个向量)。其中是浮点值,我需要将其转换为离散类标签 -1、0 和 1。这应该通过将浮点值映射到这 3 个类标签之一的阈值函数来完成。
除了迭代Iterating through a scipy.sparse vector (or matrix) 中描述的元素之外,没有别的办法吗?我很想有一些优雅的方式来以某种方式在所有元素上映射(thresholdfunc())。
请注意,虽然它是 csr_matrix 类型,但它实际上并不是稀疏的,因为它只是涉及稀疏矩阵的另一个函数的返回。
【问题讨论】:
-
csc格式在表示列向量时更加紧凑。 -
如果不是特别稀疏,那么我建议使用密集数组版本,
M.toarray()(或M.A)。 -
谢谢!如果我只迭代一次,是否值得先将其转换为数组?我的意思是,转换的开销不是会吃掉数组的优势吗?
标签: python numpy scipy sparse-matrix array-broadcasting