【发布时间】:2015-10-06 16:20:34
【问题描述】:
我正在尝试使用 argsort 从矩阵中的每一行中获取前 2 个值。索引正在工作,因为 argsort 正在返回正确的值。但是,当我将 argsort 结果作为索引时,它会返回一个 3 维结果。
例如:
test_mat = np.matrix([[0 for i in range(5)] for j in range(5)])
for i in range(5):
for j in range(5):
test_mat[i, j] = i * j
test_mat[range(2,3)] = test_mat[range(2,3)] * -1
last_two = range(-1, -3, -1)
index = np.argsort(test_mat, axis=1)
index = index[:, last_k]
这给出:
index.shape
Out[402]: (5L, 5L)
test_mat[index].shape
Out[403]: (5L, 5L, 5L)
Python 对我来说是新手,即使在阅读了各种数组手册之后,我也发现索引通常非常令人困惑。我花更多的时间试图从对象中获取正确的值,而不是实际解决问题。我欢迎任何关于在哪里正确了解正在发生的事情的提示。谢谢。
【问题讨论】:
标签: python arrays numpy indexing