我有一個大型的numpy 1-d,包含大約700,000個類。另外,我還有另一個類似大小的數組,它包含這些類的新值。矢量化numpy 1-d重新分類
例陣列
original_classes = np.array([0,1,2,3,4,5,6,7,8,9,10,10])
new_classes = np.array([1,0,1,2,2,10,1,6,6,9,5,12])
希望的輸出
>>> reclassify_function(original_classes, new_classes)
array([ 1, 1, 1, 1, 1, 12, 1, 1, 9, 12, 12])
的困難是,有多個階級關係。
原始類別1應該得到一個新的值0,這意味着0和1是相等的類別,並且這些值的所有出現都應該被分配到相同的新類別號碼。原始類別2應歸類爲1,這意味着類別2等於類別0和1.因此原始類別0-2應分配到相同的新類別編號等等。
由於我在工作與巨大的數組我想重新分類函數被矢量化。
70,000個物品的數組?它並不是很大。嘗試使用循環的實現。如果你有這個權利,並且如果你對錶現不滿意,請在此發佈。 – Balzola
對不起,應該是70萬。已經在循環方法上工作了! –
這將佔用大約2.7MB的內存。仍然不是那麼大。 – Balzola