首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么切片后的空numpy数组具有多维且非零?

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

Stack Overflow用户
提问于 2019-07-23 23:22:34
回答 1查看 267关注 0票数 0

在python numpy中,我如何理解数组在切片后变空的情况,如下所示,但形状仍然是多维的,也不是零。

代码语言:javascript
运行
复制
    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)
EN

回答 1

Stack Overflow用户

发布于 2019-07-24 00:05:42

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

代码语言:javascript
运行
复制
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允许我们对‘范围’之外的列表进行切片,numpy也是如此。3:5在列维之外,因此生成的维度为0。

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

创建这样的数组的其他方法:

代码语言:javascript
运行
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57167456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档