Ach*_*age 2 python arrays indexing numpy
这个问题可能以前在某个地方被问过,但经过一番搜索后我找不到任何问题,因此在此发布。
假设我有一个数组A和一个索引数组idx。暂时让两个数组都是二维的。
import numpy as np
A = np.array([[3,3,4],
[4,5,4],
[3,4,5]])
idx = np.array([[1,1],
[2,1],
[1,0],
[0,0]])
Run Code Online (Sandbox Code Playgroud)
现在我想根据toA中的索引替换相应的元素。基本上,我想做,但行不通。idx0A[idx]=0
如何在不运行循环的情况下有效地完成此操作?
优选地,所提出的解决方案应该可扩展到更高维度(3D及以上)的阵列。
你可以试试:
A[idx[:,0], idx[:,1]]=0
Run Code Online (Sandbox Code Playgroud)
输出:
[[0 3 4]
[0 0 4]
[3 0 5]]
Run Code Online (Sandbox Code Playgroud)
如果维度数量过多而无法对其进行硬编码,则可以使用:
A[tuple(idx.T)]=0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1092 次 |
| 最近记录: |