我需要(快速)稀疏矩阵。在Numpy/Python中快速稀疏矩阵
稀疏 - 将丰度矩阵转换为均匀的采样深度。
在这个例子中,每行是一个样本,采样深度是行的总和。我想通过min(rowsums(matrix))
样本随机抽样(替换)矩阵。
假设我有一个矩阵:
>>> m = [ [0, 9, 0],
... [0, 3, 3],
... [0, 4, 4] ]
稀疏功能由行进行与替换随机抽样min(rowsums(matrix))
倍(这是6在这种情况下)。
>>> rf = rarefaction(m)
>>> rf
[ [0, 6, 0], # sum = 6
[0, 3, 3], # sum = 6
[0, 3, 3] ] # sum = 6
结果是随机的,但行数总是相同的。
>>> rf = rarefaction(m)
>>> rf
[ [0, 6, 0], # sum = 6
[0, 2, 4], # sum = 6
[0, 4, 2], ] # sum = 6
PyCogent有做这个逐行但它是在大型矩阵非常缓慢的功能。
我有一种感觉,在Numpy中有一个功能可以做到这一点,但我不知道它会被称为。
我想'nowsums'真正的意思'rowsums'? – 2013-03-19 19:23:11
是的,谢谢。 – 2013-03-19 19:30:20