首页 > 解决方案 > 无法理解最后一行的数组语句

问题描述

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] 是如何工作的。请帮忙!

标签: pythonarraysmultidimensional-arraynumpy-ndarray

解决方案


首先,解决这个问题 arr[ind1,ind2] 因为 ind1 和 ind2 都是 2*2 的矩阵。现在我们必须对两个矩阵的对应位置进行配对。结果为 4 对: (1,0) ;(0,1) ; (2,2) ; (1,2) 。

现在从 arr 中找到这些位置的值。值分别为 3;1;8;5。现在有 .sum() 操作。所以只需简单地添加这些值。结果是 17。

希望我能澄清你的疑问。


推荐阅读