numpy:替代numpy.take版本

时间:2016-11-18 12:49:16

标签: python numpy

我有以下情况:

import numpy as np
data = np.array(range(300)).reshape((3,100))
idxs = [10, 92, 22]

现在我想从ith索引获取ith数据列表中的元素。可能的解决方案是

[d[i] for d,i in zip(data, idxs)]
>>> [10, 129, 222]

现在我的问题是, numpy函数中是否有任何构建,它完全符合上述功能?我尝试了np.take但它只输出第一个列表中的值:< / p>

np.take(data, idxs)
>>> [10 29 22]

np.take的另一个解决方案包含np.eye,但与列表理解相比,它看起来有点过分了:

np.take(data, idxs, axis = 1)[np.eye(, dtype = np.bool)]
>>> [ 10 129 222]

编辑这个问题现在看起来像代码高尔夫,所以如果它是错误的地方问我,请给我反馈

0 个答案:

没有答案