numpy:有没有一种方法可以从一个没有外部循环的映射序列中创建一个数组?

迈克尔·S。

对我来说,这听起来像是一个普通的用例,但是我仍然找不到适合的功能/线程。

我有两个numpy数组,一个是三元组序列,另一个是相关的索引序列。我想创建一个等长序列的1维数组,该数组由映射项根据它们的索引组成。

例:

mapping = np.array(((25, 120, 240), (18, 177, 240), (0, 0, 0), (10, 120, 285)))
indices = np.array((0, 1, 0, 0))

print "mapping:", mapping
print "indices:", indices
print "mapped:", mapping[indices]

产生以下输出:

mapping: [[ 25 120 240]
 [ 18 177 240]
 [  0   0   0]
 [  10 120 285]]
indices: [0 1 0 0]
mapped: [[ 25 120 240]
 [ 18 177 240]
 [ 25 120 240]
 [ 25 120 240]]

当然,根据索引数组,此方法将整个映射数组视为一个映射,而不是映射列表,仅返回第一个或第二个内部映射。但是我一直在寻找的是:

mapped: [25 177 0 10]

...由第一个映射的第一个项目,第二个映射的第二个以及第三个和第四个映射的第一个组成。

有没有一种精简的方法可以单独使用numpy功能来做到这一点,而无需外部循环,也不会为临时数组占用过多的内存?

尼可可

我认为您正在寻找numpy关于索引的文档的这一部分

In [17]: mapping[(np.arange(indices.shape[-1]),indices)]
Out[17]: array([ 25, 177,   0,   10])

这会创建一个临时数组(np.arange),但它是一维的,我想不到更好的方法了。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Javascript中,有没有一种方法可以用一个语句创建一个索引对象数组?

有没有一种方法可以创建一个包含许多mongoDB objectiID的数组属性

有没有一种方法可以循环到与另一个数组相同的每个元素?

有没有一种方法可以在Python中定义一个float数组?

有没有一种方法可以将Image和string变量存储在一个数组中?(统一)

有没有一种方法可以选择或突出显示Altair中的最后一个或第一个“ n”个数据点?

有没有一种方法可以在一行中将多个Array方法应用于一个数组?

有没有一种方法可以在pyspark中一个接一个地访问数组(结构)中的多个JSON对象

有没有一种方法可以创建一个包含Kubernetes Pod的多个文件的configMap?

有没有一种方法可以将数组对象添加到一个类?

有没有一种方法可以使用bash读取数组的最后一个元素?

有没有一种方法可以选择与另一个对象相关的数组对象?

MySQL:有没有一种方法可以将值从一个表插入到另一个表?

有没有一种方法可以将元素从一个网格移动到另一个网格

有没有一种方法可以从单个数据列表中形成一个数据框?

Python中有没有一种方法可以创建一个for循环,而该循环不会等待内部代码完成再进行迭代?

有没有一种方法可以使用char变量创建一个for循环来创建多个绘图?

有没有一种方法可以用一个数字方案创建多级列表?

有没有一种方法可以将Docker映像合并到一个容器中?

有没有一种方法可以在每行中打印一个键和字典的值?

有没有一种方法可以在一个命令中获取git根目录?

有没有一种方法可以在一个kubectl命令中检查多个Pod

有没有一种方法可以在一个命令中获取python中位数的索引?

有没有一种方法可以跳过迭代器中的第一个条目?

有没有一种方法可以对Pascal中的多个按钮使用一个过程?

有没有一种方法可以在db:seed Rails中仅一个表?

有没有一种方法可以在多行中编写一个很长的HTML属性值?

有没有一种方法可以从一个表中全部选择,并在可能的情况下联接?

有没有一种方法可以在不创建另一个数组的情况下排除数组中的非重复数字?