我有一個(gè)現(xiàn)有的矩陣:array([[0, 1, 0, ..., 0, 1, 0], [0, 0, 1, ..., 0, 0, 1], [1, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 1, 0, 0]])我想對(duì)這些行進(jìn)行編碼,這樣我就得到一個(gè) (1, columns) 數(shù)組,其中的整數(shù)對(duì)應(yīng)于哪一行value == 1預(yù)期輸出[3, 1, 2, ..., 4, 1, 2]邊緣情況(加)如果您想提供更多幫助,我可能會(huì)遇到矩陣如下所示的情況:array([[0, 1, 0, ..., 0, 1, 0], [0, 0, 0, ..., 0, 0, 1], [1, 0, 0, ..., 0, 0, 0], [0, 1, 0, ..., 1, 0, 0]])您可以看到第 1 列和第 2 列(從 0 開(kāi)始索引)有 2 個(gè)值 1 或根本沒(méi)有任何值。在這些情況下,我希望它做的是:填充兩行 -> 返回該組合的新值(例如 5,6,7)沒(méi)有填充行 -> 返回一個(gè)新值(例如 0)
1 回答

BIG陽(yáng)
TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
對(duì)于第一個(gè)問(wèn)題:
np.argmax(arr, axis=0) + 1
對(duì)于擴(kuò)展問(wèn)題:
def get_idx(x):
ret = np.where(x)
return ret[0] + 1 if len(ret[0]) else np.array([0])
[get_idx(a[:,i]) for i in range(a.shape[1])]
# out:
# [array([3]), array([1, 4]), array([0]), array([4]), array([1]), array([2])]
添加回答
舉報(bào)
0/150
提交
取消