python - 使用另一个二维数组作为索引为二维数组赋值
问题描述
我有一个 2D mxn 数组 A 和另一个 2D qxp 数组 B。我想在 B 中列出的每个坐标处为 A 分配值 1。
我知道我可以首先在axis = 0处获得b的长度,然后编写一个循环来做到这一点,例如 A[B[i,0]][b[i,1]] = 1; 但我正在处理一个大数据集,我想看看是否有任何方法可以在没有 for 循环的情况下做到这一点。
解决方案
您可以通过将 B 的列作为 A 的索引传递来直接分配值。您不需要遍历 B 的行。
A[B[:,0],B[:,1]]=1
这是一个更详细的示例
A=np.zeros((4,4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
B=np.array([[2,1],[2,2],[0,2],[3,0]])
array([[2, 1],
[2, 2],
[0, 2],
[3, 0]])
# directly pass each of the columns of B as indices of A
A[B[:,0],B[:,1]] = 1
print(A)
array([[0., 0., 1., 0.],
[0., 0., 0., 0.],
[0., 1., 1., 0.],
[1., 0., 0., 0.]])
推荐阅读
- javascript - 在javascript中滚动时隐藏标题的性能问题
- javascript - 延迟加载未显示在屏幕 img 上
- spring-boot - @Notnull 更新而不是添加
- c# - Botframework V4:用户键入响应而不是单击选择提示按钮
- php - Codeigniter 获取数据问题
- javascript - 在 Ajax 中多次执行只有一个警报
- c# - 从带有图像和水印的pdf创建pdf
- google-chrome - 铬 72.0.3626.81 和 RTCPeerConnection.setLocalDescription
- reactjs - React 组件:模拟标准 HTMLAPI
- linux - Qt 使应用程序在 Weston/Wayland 平台上始终处于顶部