为什么切片后的空numpy数组具有多维性和非零性?

2024-06-16 12:13:36 发布

您现在位置:Python中文网/ 问答频道 /正文

在pythonnumpy中,我如何理解数组在如下所示的切片后变为空,但形状仍然是多维的和非零的情况。你知道吗

    import numpy as np

    x = np.matrix([[1,2,3],
                   [4,5,6],
                   [7,8,9]])
    y = x[0:2,3:5]

    print(y)            # []
    print(y.shape)      # (2, 0)

Tags: importnumpyasnp情况切片数组matrix
1条回答
网友
1楼 · 发布于 2024-06-16 12:13:36

在我的评论中,我将其归咎于np.matrix,但实际上这是一个切分问题:

In [57]: np.arange(1,10).reshape(3,3)[0:2, 3:5]                                                              
Out[57]: array([], shape=(2, 0), dtype=int64)
In [58]: np.matrix(np.arange(1,10).reshape(3,3))[0:2, 3:5]                                                   
Out[58]: matrix([], shape=(2, 0), dtype=int64)

Python允许我们对“range”之外的列表进行切片,numpy也可以。3:5在列维度之外,因此生成0维度。你知道吗

多维数组可以具有0维。元素的总数是维度的乘积,在本例中为0。你知道吗

制作这种阵列的其他方法:

In [61]: np.array([[],[]])                                                                                   
Out[61]: array([], shape=(2, 0), dtype=float64)
In [62]: np.zeros((2,0))                                                                                     
Out[62]: array([], shape=(2, 0), dtype=float64)

相关问题 更多 >