亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有符號排序的 numpy 數組元素

有符號排序的 numpy 數組元素

蝴蝶不菲 2023-03-08 16:29:18
對于一個編程項目,我正在嘗試實施修剪和填充方法來量化元分析中的偏差。算法中的步驟之一是在不丟失符號的情況下對向量元素的絕對值進行排序,例如我需要的是這樣的:a_before = np.array([1, 3, -3, -2, 5, 2.5, 6]) a_after = np.array([1, 4, -5, 2, 6, 3, 7])到目前為止,我所管理的是使用 獲取具有絕對值的數組numpy.absolute,然后使用 對值進行排名.argsort。我想不通的是如何檢索新排名數組的原始負值的符號。這是進一步說明的屏幕截圖。
查看完整描述

2 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

a_before = np.array([1, 4, -5, 2, 6, 3, 7])
a_after = a_before[np.argsort(np.abs(a_before))]

輸出結果a_after為:

array([ 1,  2,  3,  4, -5,  6,  7])


查看完整回答
反對 回復 2023-03-08
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

我想這就是你想要的:


# use bigger numbers so that it's obvious that 'rank' 

# is distinct from the numerical values.

a = np.array([10, 30, -31, -20, 50, 25, 60])

isort = np.argsort(np.abs(a))

rank = np.argsort(isort)+1

signed_rank = rank * np.sign(a)


print(signed_rank)

輸出:


[ 1  4 -5 -2  6  3  7]

-2但我認為您的建議中缺少一個減號 ( ) a_after: [1, 4, -5, 2, 6, 3, 7];只有一個負值,而輸入有兩個負值。


查看完整回答
反對 回復 2023-03-08
  • 2 回答
  • 0 關注
  • 87 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號