我需要(快速)稀疏矩陣。在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