使用设置numpy切片np.哪里基于另一个维度

2024-04-20 04:44:45 发布

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


Tags: python
1条回答
网友
1楼 · 发布于 2024-04-20 04:44:45

有一种方法:

>>> px0, px1 = np.where(0==a[:,:,3]%3)
>>> a[px0, px1, :3] = 0
>>> a
array([[[ 0,  0,  0,  3],
        [ 4,  5,  6,  7]],

       [[ 8,  9, 10, 11],
        [ 0,  0,  0, 15]],

       [[16, 17, 18, 19],
        [20, 21, 22, 23]]])

或者

>>> px = np.where(0==a[:,:,3]%3)
>>> a[..., :3][px] = 0
>>> a
array([[[ 0,  0,  0,  3],
        [ 4,  5,  6,  7]],

       [[ 8,  9, 10, 11],
        [ 0,  0,  0, 15]],

       [[16, 17, 18, 19],
        [20, 21, 22, 23]]])

或者

>>> a[(*px, np.s_[:3])] = 0
>>> a
array([[[ 0,  0,  0,  3],
        [ 4,  5,  6,  7]],

       [[ 8,  9, 10, 11],
        [ 0,  0,  0, 15]],

       [[16, 17, 18, 19],
        [20, 21, 22, 23]]])

相关问题 更多 >