热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

是否可以通过另一个二维数组逐行索引二维数组而无需在NumPy中循环?

假设我有带索引的NumPy数组:array([[1,3],[2,5]])另外,我有带零的NumP

假设我有带索引的 NumPy 数组:

array([[1, 3],
[2, 5]])

另外,我有带零的 NumPy 数组:

array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])

我需要从带有索引的数组中取出第一行,并在数组的第一行中为这些索引设置 1 为零。此后第一行必须看起来像[0, 1, 0, 1, 0, 0].

然后我还需要为数组中的第二行做零,并分别使用数组中的第二行和索引。在这之后的第二行必须看起来像[0, 0, 1, 0, 0, 1].

所以,我想得到这样的数组:

array([[0, 1, 0, 1, 0, 0],
[0, 0, 1, 0, 0, 1]])

我怎么能在没有任何循环的情况下做到这一点?

回答



给定索引数组i和目标数组x

>>> i = np.array([[1, 3],
[2, 5]])
>>> x = np.array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])

你可以使用np.put_along_axis


>>> np.put_along_axis(x, i, values=1, axis=1)
>>> x
array([[0., 1., 0., 1., 0., 0.],
[0., 0., 1., 0., 0., 1.]])






推荐阅读
author-avatar
小白菜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有