如何使用高级索引独立滚动矩阵行?

Susan Sarandon
发布: 2024-10-21 14:11:30
原创
672 人浏览过

How to Roll Matrix Rows Independently Using Advanced Indexing?

使用高级索引独立滚动矩阵行

在数据操作领域,通常需要对多维数组执行复杂的操作。一种这样的场景涉及根据提供的移位值独立滚动矩阵的行。

给定一个输入矩阵 A 和一组移位值 r,任务是将滚动操作应用于 A 的每一行使用 r 的相应移位。期望的结果是:

[[0 0 4]
 [1 2 3]
 [0 5 0]]
登录后复制

高级索引为这一挑战提供了一个优雅的解决方案。通过利用负移位值和高级数组切片技术,您可以有效地实现滚动操作,如下所示:

<code class="python">rows, column_indices = np.ogrid[:A.shape[0], :A.shape[1]]

# Always use a negative shift, so that column_indices are valid.
# Alternative: r %= A.shape[1]
r[r < 0] += A.shape[1]
column_indices = column_indices - r[:, np.newaxis]

result = A[rows, column_indices]</code>
登录后复制

在这种方法中,ogrid 生成与 A 的行和列相对应的索引网格。根据负移位值操纵列索引,滚动操作有效地应用于每一行。该方法为独立滚动矩阵行提供了一种高效的解决方案,避免了循环的需要。

以上是如何使用高级索引独立滚动矩阵行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!