numpy数组切片,为什么有时2-d数组,有时是1-d数组

com*_*ike 2 python numpy

我的问题是关于numpy中的数组切片.以下行为的逻辑是什么?

x = arange(25)
x.shape = (5, 5)
# This results in a 2-d array in which rows and columns are excerpted from x
y = x[0:2, 0:2]
# But this results in a 1-d array
y2 = x[0:2, 0]
Run Code Online (Sandbox Code Playgroud)

我希望y2是一个二维数组,其中包含第0行和第0列第0列的值.

Jai*_*ime 5

您可以获得预期的行为x[0:2, 0:1],即使用单个项目切片.但是,只要选择了单个元素,该尺寸就会折叠.你可能不喜欢它,但是如果你想一点,你应该意识到它是最一致的行为:遵循你的逻辑,x[0, 0]将是一行1列和1列的二维数组,而不是存储在那个位置的项目.