python - 无法理解最后一行的数组语句
问题描述
import numpy as np
arr = np.arange(9, dtype = "float").reshape(3,3)
ind1 = np.array([[1,2],[0,1]])
ind2 = np.array([[0,2],[1,2]])
print(arr[ind1, ind2].sum())
给定代码的输出为 17.0,但我无法理解 arr[ind1,ind2] 是如何工作的。请帮忙!
解决方案
首先,解决这个问题 arr[ind1,ind2] 因为 ind1 和 ind2 都是 2*2 的矩阵。现在我们必须对两个矩阵的对应位置进行配对。结果为 4 对: (1,0) ;(0,1) ; (2,2) ; (1,2) 。
现在从 arr 中找到这些位置的值。值分别为 3;1;8;5。现在有 .sum() 操作。所以只需简单地添加这些值。结果是 17。
希望我能澄清你的疑问。
推荐阅读
- selenium - 我们如何点击 Selenium Webdriver 下的“Href”链接?
- r - 如何在 R 中列出和估计所有可能的成对比较
- amazon-web-services - 自动更新 athena 分区 - MSCK Repair
- highcharts - 如果我在 highcharts 中有大于 1000 的数据,我想显示 1k
- linked-list - 在我的 Rust 单链表中实现 .pop() 的更好方法是什么?
- dart - Flutter / googleapis / Gmail API 发送邮件返回 400 Bad Request
- c - Ansi C 运行时性能全局与局部变量
- azure - Azure 流分析作业对于小数据来说很昂贵?
- firebase - Cloud Firestore 是否有读取限制
- css - IE 和 Edge 不尊重文本转换