您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

当传递列表而不是numpy中的元组时进行高级切片

当传递列表而不是numpy中的元组时进行高级切片

该规则有一个例外。“高级索引”文档部分没有提及它,但在“基本切片和索引”部分的开头附近,您会看到以下文本:

为了保持与Numeric中的常用用法向后兼容, ,省略号对象或newaxis对象但不 , 。整数数组或其他嵌入式序列。

a[[1, np.array(2)]]@H_301_9@并不会触发基本索引。它将触发向后兼容性逻辑的未记录部分,如源代码中的注释所述:

    /*
     * Sequences < NPY_MAXDIMS with any slice objects
     * or newaxis, Ellipsis or other arrays or sequences
     * embedded, are considered equivalent to an indexing
     * tuple. (`a[[[1,2], [3,4]]] == a[[1,2], [3,4]]`)
     */
@H_301_9@

np.array(2)@H_301_9@名单内引起仿佛它是一个元组,待处理的名单,但结果a[(1, np.array(2))]@H_301_9@仍是一种先进的索引操作。最终,将1@H_301_9@和和2@H_301_9@应用于不同的轴,这与不同a[[1, 2]]@H_301_9@,结果最终看起来与相同a[1, 2]@H_301_9@,但是如果您使用3D进行尝试a@H_301_9@,则会生成一个副本而不是视图。

其他 2022/1/1 18:36:29 有461人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶