用列表中的索引替换数组中的值

托马斯·伦纳德

在给定的数组中,我想用另一个数组中的该值的索引替换这些值(不包含重复项)。这是我尝试做的一个简单示例:

import numpy as np
from copy import deepcopy

a = np.array([[0, 1, 2], [2, 1, 3], [0, 1, 3]])
chg = np.array([3, 0, 2, 1])

b = deepcopy(a)
for new, old  in enumerate(chg):
   b[a == old] = new

print b
# [[1 3 2] [2 3 0] [1 3 0]]

但是我需要在大型数组上执行此操作,因此就执行时间而言,显式循环是不可接受的。

我不知道如何使用花哨的numpy函数来做到这一点...

BM

take 是你的朋友。

a = np.array([[0, 1, 2], [2, 1, 3], [0, 1, 3]])
chg = np.array([3, 0, 2, 1])
inverse_chg=chg.take(chg)
print(inverse_chg.take(a))

给出:

[[1 3 2]
 [2 3 0]
 [1 3 0]]

或直接使用花式索引:chg[chg][a],但inverse_chg.take(a)速度要快三倍。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

用索引列表替换3d Numpy数组的多个值

来自分类Dev

用另一个列表中相同索引处的值替换列表中的错误值

来自分类Dev

在Python中用索引替换列表中的值

来自分类Dev

用Python列表中的值交换索引?

来自分类Dev

用Python中的值替换列表中的序列

来自分类Dev

方案-用其索引替换列表中的元素

来自分类Dev

用Postgres中其他值的列表替换多个值

来自分类Dev

替换列表中的值

来自分类Dev

用R中的索引数组访问列表中的向量

来自分类Dev

用PHP数组中的循环替换单个数组值?

来自分类Dev

数组索引:用python中的另一组索引替换索引的最快方法

来自分类Dev

用索引列表替换3d Numpy数组的多个值

来自分类Dev

如何替换索引位置列表中的值?

来自分类Dev

替换列表中的值

来自分类Dev

用另一个列表中相同索引处的值替换列表中的错误值

来自分类Dev

用外部数组中的值替换对象值

来自分类Dev

用先前的值Matlab替换数组中的值

来自分类Dev

替换数组中索引的值

来自分类Dev

用列表中的值逐行替换NA

来自分类Dev

用条件替换数组中的值

来自分类Dev

替换数组中的值

来自分类Dev

替换列表中的值

来自分类Dev

用数组中的符号替换数字值

来自分类Dev

用条件参数替换python中的DataFrame索引值

来自分类Dev

替换数组中的值

来自分类Dev

用数组中的最小值替换最大值

来自分类Dev

用另一个数组的相同索引的值替换一个数组中的值?

来自分类Dev

用python中的随机值替换列表中的随机元素

来自分类Dev

用定义的值替换列表列表中的元素 - Python