-
慕森卡
你可以用np.argsort()一些 numpy 切片来做到这一点。使用您的示例数组: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]])基本上按最后一行内容的升序值np.argsort(arr[-1, :])返回最后一行的索引。这将返回您给出的示例。arrarray([1, 0, 2, 3, 4])然后我们只需使用arr[:, np.argsort(arr[-1, :])].
-
芜湖不芜
你可以用np.argsort()一些 numpy 切片来做到这一点。使用您的示例数组: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]])基本上按最后一行内容的升序值np.argsort(arr[-1, :])返回最后一行的索引。这将返回您给出的示例。arrarray([1, 0, 2, 3, 4])然后我们只需使用arr[:, np.argsort(arr[-1, :])].
-
繁星coding
使用 argsort 选择 con 作为索引:import numpy as npnum_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)] = coni = np.argsort(con)seq = seq[:,i]print(con)print(seq)