我正在学习python numpy.array,对索引的工作原理感到困惑。让我们看看我有以下3x4的2D数组:
A = np.array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9,10,11,12]])如果我想从这个数组中提取1,我需要输入该数字的索引,即A0,0
出于好奇心,我也尝试了以下方法
B = A[[0,0]]
C = A[[0],[0]]B原来是一个2x4的2D数组:
array([[1, 2, 3, 4],
[1, 2, 3, 4]])C原来是一个一维数组,包含1个元素:
array([1])我想知道B和C的索引是如何工作的,为什么我会获得这些数组?
发布于 2021-07-22 23:16:20
在B中,您只为一个二维数组指定一个索引,即[0,0]。因此,它将返回给定索引的第一维中的元素(此处为0和0)。
因此,对于第一个索引(它是0),它将返回第一个维度中的第一个元素,即[1,2,3,4],并且它将返回下一个给定的索引,该索引再次为0,因此它将打印两个[1,2,3,4],就像您得到的一样。
接下来,在C中,您为一个二维数组指定了两个索引,分别是[0]和[0]。所以它将遍历索引0的第一个维度,也就是[1,2,3,4],在那个元素中,它将返回第0个位置,也就是你所得到的[1]。
为了更好地理解,让我们看看另一个案例A[[0,1],2]。
这里,我们给出了2个二维数组的索引,分别是[0,1]和2。因此,我们得到了索引[0,2]中的元素,接下来[1,2]的.Th输出将是[3,7]。
问题是它将遍历给定索引的所有可能组合,并返回这些索引中的那些值。
https://stackoverflow.com/questions/68475869
复制相似问题