gpt4 book ai didi

python - 2 个数组的 Numpy 索引

转载 作者:太空狗 更新时间:2023-10-29 18:18:42 27 4
gpt4 key购买 nike

考虑两个 numpy 数组

a = np.array(['john', 'bill', 'greg', 'bill', 'bill', 'greg', 'bill'])
b = np.array(['john', 'bill', 'greg'])

我怎样才能生成第三个数组

c = np.array([0,1,2,1,1,2,1])

a长度相同表示a的每一项在数组b中的索引?

我可以通过将 b 的元素循环为 b[i] 并检查 np.where(a == b[i] ) 但想知道 numpy 是否可以以更快/更好/更少的代码行方式完成此任务。

最佳答案

这是一个选项:

import numpy as np

a = np.array(['john', 'bill', 'greg', 'bill', 'bill', 'greg', 'bill'])
b = np.array(['john', 'bill', 'greg'])

my_dict = dict(zip(b, range(len(b))))

result = np.vectorize(my_dict.get)(a)

结果:

>>> result
array([0, 1, 2, 1, 1, 2, 1])

关于python - 2 个数组的 Numpy 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23612699/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com