我有以下情况:
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]
编辑这个问题现在看起来像代码高尔夫,所以如果它是错误的地方问我,请给我反馈