python三维矩阵切片_三维数组的Python NumPy角切片

在NumPy中工作时,我了解如何使用this article从3D数组中分割2D数组。在

根据我想要分割的轴:array = [[[0 1 2]

[3 4 5]

[6 7 8]]

[[9 10 11]

[12 13 14]

[15 16 17]]

[[18 19 20]

[21 22 23]

[24 25 26]]]

切片可以给我:

^{pr2}$

但有没有可能以45度角切割?例如:j_slice_down = array[slice going down starting from index 0]

[[0 1 2]

[12 13 14]

[24 25 26]]

我能够在所有3个轴的上升或下降,甚至包裹所有的方式。。。在黑名单上有很多for循环的日子。。。但我相信肯定有更好的办法。在

更新,选择答案:

我选择了hpaulj的答案,用np.arrange创建两个坐标数组。通过一点工作,我可以使它适合我的需求,在任何角度,任何轴上,三维阵列的非对称维度,在任何位置,包括包装所有的方式,使它与轴的尺寸相同。在

为x和y制作了两个np.arrange阵列。在

对np.roll数组x轴数组进行了np.roll、递增、np.hstack和{}等不同的方法。y = y[::-1]为交替角度。在if axis is 'z': #i

slice_notation = np.index_exp[x, y, :]

elif axis is 'y': #k

slice_notation = np.index_exp[x, :, y]

else: #j

slice_notation = np.index_exp[:, x, y]

创建切片表达式,然后使用slice_notation就地执行所需的操作。在

其他建议的方法:np.diagonal和{}可能更适合其他方法,尽管它们可能与我有不同的要求。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值