0
我有一個數組200x200,其值爲-600至100.我想保持95%的正值不變並設置5%的最大正值達到95%。負面是一樣的。使用numpy將一個數組中的5%最大值更改爲某個值
這是我的代碼,它是如此醜陋,我希望改善。
idx_pos = np.where(x > 0.)
idx_pos_sorted = np.argsort(x[idx_pos])
n = len(idx_pos[0])
n_punc = int(n*percentage)
x[idx_pos[0][idx_pos_sorted[n_punc:]], idx_pos[1][idx_pos_sorted[n_punc:]]] = (
x[idx_pos[0][idx_pos_sorted[n_punc]], idx_pos[1][idx_pos_sorted[n_punc]]])
下面的直方圖是數組的值。