2
我使用稀疏矩陣作爲壓縮數據的均值,當然,當我失去時,我所做的是從大於指定閾值的所有值創建稀疏字典。我想我的壓縮數據大小是我的用戶可以選擇的變量。在稀疏矩陣中查找n個最大數字
我的問題是,我有一個稀疏矩陣,有很多近零值,我必須做的是選擇一個閾值,以便我的稀疏字典具有特定的大小(或最終重建錯誤是具體率) 下面是我如何創建我的字典(從計算器,我認爲採取> <):
n = abs(smat) > treshold #smat is flattened(1D)
i = mega_range[n] #mega range is numpy.arange(smat.shape[0])
v = smat[n]
sparse_dict = dict(izip(i,v))
我如何才能找到treshold使其等於我的數組(SMAT)的第n個最大的價值?
正是我需要的感謝! – Manux 2010-07-07 15:25:11
不客氣! – unutbu 2010-07-07 15:28:43
Fwiw,scipy/stats.py會執行np.sort(),然後進行插值。 有一個std :: nth_element和std :: partial_sort, 但sort()真的很快。 – denis 2010-07-13 10:56:38