栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

根据字典有效地替换数组中的元素-NumPy / Python

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

根据字典有效地替换数组中的元素-NumPy / Python

方法#1:循环使用数组数据

一种方法是提取数组中的键和值,然后使用类似的循环-

k = np.array(list(mapping.keys()))v = np.array(list(mapping.values()))out = np.zeros_like(input_array)for key,val in zip(k,v):    out[input_array==key] = val

与原始数据相比,此数据的好处是用于高效数据提取的数组数据的空间局部性,该空间局部性可用于迭代中。

另外,由于您提到

thousand largenp.arrays
。所以,如果
mapping
字典保持不变,这一步得到阵列版本-
k
并且
v
是一次性的安装过程。

方法2:使用

searchsorted

建议使用

np.searchsorted
-

sidx = k.argsort() #k,v from approach #1k = k[sidx]v = v[sidx]idx = np.searchsorted(k,input_array.ravel()).reshape(input_array.shape)idx[idx==len(k)] = 0mask = k[idx] == input_arrayout = np.where(mask, v[idx], 0)

方法#3:使用整数数组的映射数组进行矢量化的方法

可以使用整数数组的映射数组来建议使用向量化的数组,当由输入数组索引时,会将其直接引向最终输出-

mapping_ar = np.zeros(k.max()+1,dtype=v.dtype) #k,v from approach #1mapping_ar[k] = vout = mapping_ar[input_array]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624827.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号