第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何按一行對矩陣進行排序 - Python

如何按一行對矩陣進行排序 - Python

拉丁的傳說 2021-10-26 15:39:06
所以有一個這樣的矩陣:[[0. 1. 0. 0. 0.][1. 0. 0. 0. 0.][0. 0. 0. 1. 0.][0. 0. 0. 0. 1.][1. 0. 3. 4. 4.]]如何按最后一行對其進行排序,以便列的內(nèi)容保持不變,如下所示:[[1. 0. 0. 0. 0.][0. 1. 0. 0. 0.][0. 0. 0. 1. 0.][0. 0. 0. 0. 1.][0. 1. 3. 4. 4.]]現(xiàn)在我是這樣做的:num_seq = 10seq_len = 5seq_width = 5con = np.random.randint(0, seq_width,size=seq_len)seq = np.zeros((seq_len, seq_width))seq[np.arange(seq_len), con] = 1seq[seq_len-1, np.arange(seq_width)] = conout = np.sort(seq, axis=1)并獲得如下所示的輸出:[[0. 0. 0. 0. 1.] [0. 0. 0. 0. 1.] [0. 0. 0. 0. 1.] [0. 0. 0. 0. 1.] [0. 1. 3. 4. 4.]]
查看完整描述

3 回答

?
慕森卡

TA貢獻1806條經(jīng)驗 獲得超8個贊

你可以用np.argsort()一些 numpy 切片來做到這一點。使用您的示例數(shù)組:


arr = np.array([[0, 1, 0, 0, 0],

                [1, 0, 0, 0, 0],

                [0, 0, 0, 1, 0],

                [0, 0, 0, 0, 1],

                [1, 0, 3, 4, 4]])

arr[:, np.argsort(arr[-1, :])]

# array([[1, 0, 0, 0, 0],

#        [0, 1, 0, 0, 0],

#        [0, 0, 0, 1, 0],

#        [0, 0, 0, 0, 1],

#        [0, 1, 3, 4, 4]])

基本上按最后一行內(nèi)容的升序值np.argsort(arr[-1, :])返回最后一行的索引。這將返回您給出的示例。arrarray([1, 0, 2, 3, 4])


然后我們只需使用arr[:, np.argsort(arr[-1, :])].


查看完整回答
反對 回復 2021-10-26
?
蕪湖不蕪

TA貢獻1796條經(jīng)驗 獲得超7個贊

你可以用np.argsort()一些 numpy 切片來做到這一點。使用您的示例數(shù)組:


arr = np.array([[0, 1, 0, 0, 0],

                [1, 0, 0, 0, 0],

                [0, 0, 0, 1, 0],

                [0, 0, 0, 0, 1],

                [1, 0, 3, 4, 4]])

arr[:, np.argsort(arr[-1, :])]

# array([[1, 0, 0, 0, 0],

#        [0, 1, 0, 0, 0],

#        [0, 0, 0, 1, 0],

#        [0, 0, 0, 0, 1],

#        [0, 1, 3, 4, 4]])

基本上按最后一行內(nèi)容的升序值np.argsort(arr[-1, :])返回最后一行的索引。這將返回您給出的示例。arrarray([1, 0, 2, 3, 4])


然后我們只需使用arr[:, np.argsort(arr[-1, :])].


查看完整回答
反對 回復 2021-10-26
?
繁星coding

TA貢獻1797條經(jīng)驗 獲得超4個贊

使用 argsort 選擇 con 作為索引:


import numpy as np


num_seq = 10

seq_len = 5

seq_width = 5


con = np.random.randint(0, seq_width,size=seq_len)


seq = np.zeros((seq_len, seq_width))


seq[np.arange(seq_len), con] = 1

seq[seq_len-1, np.arange(seq_width)] = con



i = np.argsort(con)

seq = seq[:,i]


print(con)

print(seq)


查看完整回答
反對 回復 2021-10-26
  • 3 回答
  • 0 關注
  • 307 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號