为了账号安全,请及时绑定邮箱和手机立即绑定

为什么会产生这两个结果?

为什么会产生这两个结果?

HUH函数 2021-11-02 15:10:03
In [18]: z = np.array([[6,7,3],[8,8,8]])                                                                                                                                                      In [19]: z                                                                                                                                                                                    Out[19]: array([[6, 7, 3],       [8, 8, 8]])In [20]: print(z[0:, :0])                                                                                                                                                                     []In [21]: print(z[1:, :1])                                                                                                                                                                     [[8]]我不明白这两个打印语句。例如,z[1:, :1]?
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

创建一个数组,其中每个值都不同:


In [134]: z = np.arange(6).reshape(2,3)

In [135]: z

Out[135]: 

array([[0, 1, 2],

       [3, 4, 5]])

尝试对 0 切片进行变体:


In [136]: z[0:,:]

Out[136]: 

array([[0, 1, 2],

       [3, 4, 5]])

In [137]: z[:,:0]

Out[137]: array([], shape=(2, 0), dtype=int64)

In [138]: z[0:,:0]

Out[138]: array([], shape=(2, 0), dtype=int64)

'0:' 与 ':' 和 '::' and 相同slice(None,None,None),都表示整个事物或维度。


':0' 表示 '0:0',这是一个空切片,因此尺寸为 0 维度。


现在第 1 个切片的变化:


In [139]: z[1:,:]

Out[139]: array([[3, 4, 5]])

In [140]: z[:,:1]

Out[140]: 

array([[0],

       [3]])

In [141]: z[1:,:1]

Out[141]: array([[3]])

'1:' 除第一个切片外的所有切片;对于大小为 '1:2' 的 2 维,大小为 1 的切片。':1' 也是 '0:1' 另一个大小为 1 的切片,因此是 (1,1) 形状的结果。


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号