为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

千巷猫影 2023-12-29 16:29:57
我需要使用索引列表将 3d NumPy 数组的多个值替换为其他值。例如:old_array = np.full((224,224,3),10)# in below list first position element are indexes and 2nd one are their corresponding valueslist_idx_val = [[array([[ 2, 14,  0],   [ 2, 14,  1],   [ 2, 14,  2],   [99, 59,  1],   [99, 61,  1],   [99, 61,  2]], dtype=uint8), array([175, 168, 166,119, 117, 119], dtype=uint8)]#need to doold_array[2,14,1] =168一种方法是简单地访问索引值并用新值替换旧值。但 NumPy 数组和索引列表相当大。我将非常感谢一个快速有效的解决方案(没有循环,最好是切片或其他可能)来替换数组值,因为我需要通过使用这样的索引列表以最小的延迟替换值来创建数千个数组。
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

让我们进行数组索引:

idx, vals = list_idx_val

old_array[idx[:,0], idx[:,1], idx[:,2]] = vals

输出 (plt.show):

https://img1.sycdn.imooc.com/658e839e0001a9de03640357.jpg

查看完整回答
反对 回复 2023-12-29
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信