如何提取一个数组中的元素与索引?

问题描述 投票:0回答:2

我有一行 A = [0 1 2 3 4] 和指数 I = [0 0 1 0 1]. 我想提取 A 指数化 I即: [2, 4].

我的尝试。

import numpy as np
A = np.array([0, 1, 2, 3, 4])
index = np.array([0, 0, 1, 0, 1])
print(A[index])

结果并不像我想象的那样

[0 0 1 0 1]

请你详细说明如何实现我的目标?

python-3.x numpy subset
2个回答
2
投票

我想你想要的是布尔索引。

A[index.astype(bool)]
# array([2, 4])

0
投票

一个非numpy的方法来实现这个目标,如果它有用的话 -- 它使用zip来组合每一对元素,如果第二个为真,则返回第一个。

[x[0] for x in zip(a, i) if x[1]]

© www.soinside.com 2019 - 2024. All rights reserved.