在numpy数组中,切片时尺寸如何变化?解释以下代码

时间:2018-01-05 10:23:24

标签: numpy multidimensional-array

在以下代码中,转置有效。

b = numpy.arange(4,3)
print(b[1:3,-1:)
print(b[1:3,-1:].shape)
print(b[1:3,-1:].T)
print(b[1:3,-1:].T.shape)

在下列情况下,转置不会。

b = numpy.arange(4,3)
print(b[1:3,-1)
print(b[1:3,-1].shape)
print(b[1:3,-1].T)
print(b[1:3,-1].T.shape)

1 个答案:

答案 0 :(得分:2)

根据您是使用范围还是标量切片,切片numpy数组的行为会有所不同。您的第一个示例切片具有范围,因此尽管最终只有第二个维度的大小为1,但该维度仍然存在。您的第二个示例切片带有标量,在这种情况下,合适的维度将被折叠。所以在第二个例子中,你留下了一个一维数组,它在转置下没有做任何事情 - 它没有任何其他尺寸可以交换。