gpt4 book ai didi

python - 为什么用括号和逗号索引 numpy 数组的行为不同?

转载 作者:太空狗 更新时间:2023-10-29 17:27:18 24 4
gpt4 key购买 nike

我倾向于用方括号索引 numpy 数组(矩阵),但我注意到当我想对数组(矩阵)进行切片时,我必须使用逗号表示法。为什么是这样?例如,

>>> x = numpy.array([[1, 2], [3, 4], [5, 6]])
>>> x
array([[1, 2],
[3, 4],
[5, 6]])
>>> x[1][1]
4 # expected behavior
>>> x[1,1]
4 # expected behavior
>>> x[:][1]
array([3, 4]) # huh?
>>> x[:,1]
array([2, 4, 6]) # expected behavior

最佳答案

这个:

x[:, 1]

表示“沿第一个轴取 x 的所有索引,但沿第二个轴只取索引 1”。

这个:

x[:][1]

表示“沿第一个轴取 x 的所有索引(所以所有 x),然后沿 first 轴取索引 1结果的”。您将 1 应用于错误的轴。

x[1][2]x[1, 2] 只是等价的,因为用整数索引数组会将所有剩余的轴移向前面形状,所以 x[1] 的第一个轴是 x 的第二个轴。这根本不能一概而论;您应该几乎总是使用逗号而不是多个索引步骤。

关于python - 为什么用括号和逗号索引 numpy 数组的行为不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38113994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com