python - 如何使用两个索引数组扩展 numpy 数组
问题描述
我有一个 numpy 矩阵,例如:
a = np.array([[1, 2], [3, 4]])
然后,我想使用另一个带有索引的 numpy 矩阵来扩展矩阵,例如:
idxes = np.array(([0, 1, 0], [1, 0, 1]]) # the indexes matrix
操作是这样的:
result = a[:, idxes] # this is an wrong expression
我预期的结果是:
>>result
array([[1, 2, 1],
[4, 3, 4]])
我想知道该怎么做。
解决方案
您需要为第一个 (0 th ) 轴指定 a 范围。
a[np.arange(len(a))[:,None], idxes]
这直观地遵循了索引操作,第一行将idxes
索引到 的第一行a
,第二行将idxes
索引到 的第二行a
,以此类推。
此外,arange
数组的维度需要从一维扩展到二维,因为idxes
它也是一个二维数组。
推荐阅读
- laravel - 在 apache Web 服务器上安装 Laravel - Vue SPA
- python - 保存从 Flask Sql Alchemy 创建的表和数据库,以确保跨会话的数据持久性
- javascript - 在 forEach 函数中循环
- ios - 从 coredata (Swift) 返回行数
- azure - Graph API - 自动获取电子邮件(委托权限)
- google-query-language - 带有预填充链接的查询公式
- python - 如何根据从 Tkinter 在 Photoshop 中输入的数据自动调整文本层大小的任务,并将图像放置在文本结束的位置?
- postgresql - 无法在 Alpine linux 下的 Postgres 中创建 Python 语言
- r - 如何在R中制作多条线的线图
- angular - 在 Angular 中,我们如何在 ngFor 循环中定义的 ngIf 中使用局部变量?