我很难理解如何在核切片后确定合成阵列的形状。例如,我使用以下简单代码:import numpy as nparray=np.arange(27).reshape(3,3,3)slice1 = array[:,1:2,1]slice2= array[:,1,1]print "Content in slice1 is ", slice1print "Shape of slice1 is ", slice1.shapeprint "Content in slice2 is ",slice2print "Shape of Slice2 is", slice2.shape其输出为:Content in slice1 is [[ 4] [13] [22]]Shape of slice1 is (3, 1)Content in slice2 is [ 4 13 22]Shape of Slice2 is (3,)在这两种情况下,内容都是一样的(应该是一样的)。但形状不同。那么,结果的形状是如何由numpy决定的呢? 最佳答案 基本上可以归结为-In [118]: a = np.array([1,2,3,4,5])In [119]: a[1:2]Out[119]: array([2])In [120]: a[1]Out[120]: 2当您执行a[1:2]时,您要求的是一个包含1个元素的数组。当您执行a[1]操作时,您需要的是该索引处的元素。类似的事情在你的情况下也会发生。当你做-,它意味着所有可能的索引从第一维,从第二维度的索引的子列表(虽然子列表只包含一个元素),和来自第三维的第一索引。所以你得到一个数组- [[ 4] [13] [22]]当你做-时,它意味着所有可能的索引从第一个维度,第一个索引,从第二个维度,第一个索引,从第三个维度。所以你得到一个数组-[4 13 22]关于python - 在Numpy中切片后确定结果数组的形状,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32647493/