You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Numpy 如何反转切片操作 将修改后的切片元素放回原数组对应位置

切片逆转换实现方案

你不需要用到复杂的as_strided方法,直接用和切片操作完全一致的索引赋值即可实现需求,核心逻辑是numpy对相同索引规则的切片赋值会自动匹配原始位置。

最简实现代码

import numpy as np
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
b = 2 * a[::-1, ::2]

# 初始化和a形状一致的全0数组
result = np.zeros_like(a)
# 用和切片完全相同的索引直接赋值
result[::-1, ::2] = b

print(result)

运行输出和你预期的结果完全一致:

[[ 2  0  6  0]
 [10  0 14  0]
 [18  0 22  0]]

可选的flip实现方式

如果你想显式处理axis0的翻转逻辑,也可以先翻转b再赋值给对应列,效果完全相同:

result = np.zeros_like(a)
# 先把b沿第0维翻转,再赋值给步长为2的列
result[:, ::2] = np.flip(b, axis=0)

原数组修改方案

如果你不需要保留原数组的原始值,想直接修改a得到结果,操作如下:

# 先把原数组所有元素置0
a[...] = 0
# 直接赋值到对应切片位置
a[::-1, ::2] = b

内容的提问来源于stack exchange,提问作者Sam-gege

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:42:00