繁体   English   中英

为什么在 2-D numpy 数组上执行 array[array%10] 返回 3-D 数组?

[英]Why doing array[array%10] on a 2-D numpy array returns a 3-D array?

所以我有一个二维数组使用

array = numpy.arange(1, 101).reshape(10,10)

当我执行array[array>0]之类的操作时,我得到一个 1-D 数组,但是当我执行array[array%10]时,我得到一个 3-D 数组。 我不知道这里发生了什么。

我想知道你期望它做什么。 在命令行中,您应该键入array > 0并查看您得到的结果。 这是一个布尔数组。 当您使用布尔数组进行索引时,它会在匹配的基础上从数组中选择某些元素。 在那种情况下,每个元素都是真的,所以你得到了所有 100 个元素。

array%10返回一个二维数字数组。 Numpy 将这些解释为您想要的行的索引。 array%10的第一行是 [1,2,3,4,5,6,7,8,9,0]。 因此,numpy 为您构建了一个包含这些数组行的平面。 第二行恰好是相同的,因此您最终会从原始阵列中选择十个相同的 10x10 平面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM