gpt4 book ai didi

python - 映射 NumPy 值

转载 作者:行者123 更新时间:2023-12-05 07:07:37 28 4
gpt4 key购买 nike

假设我有一个 NumPy 数组:

x = np.array([[0, 5],
[1, 6],
[4, 3],
[2, 4],
[3, 2]])

还有一个“查找”数组,告诉我如何将一个整数(第一列)映射到另一个整数(第二列):

lookup = np.array([[0, 50],
[1, 16],
[2, 47],

因此,0 -> 501 -> 162 -> 47。请注意,整数 [3, 4, 5, 6] 不在查找范围内,因此不需要更改。一个简单的方法是:

for i in range(lookup.shape[0]):
num = lookup[i, 0]
x[x == num] = lookup[i, 1]

预期的输出应该是:

np.array([[50, 5],
[16, 6],
[4, 3],
[47, 4],
[3, 47]])

对于大型二维数组 x 和更大的 lookup,在 NumPy 中是否有更有效的矢量化方式来执行此操作?

最佳答案

对于 x 不包含负整数或大整数的情况,我的做法是:

a = np.arange(x.max()+1)

a[lookup[:,0]] = lookup[:,1]

x = a[x]

关于python - 映射 NumPy 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62066899/

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