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

如何不修改原始NumPy数组,为指定列填充零值

问题原因

你之前的代码中,虽然用np.copy()复制得到了copy_both_channels,但后续的列置零操作仍然是在原始数组both_channels上执行的,所以才会修改原始数组。

正确实现方案

有两种常用实现方式,都不会修改原始数组:

方式1:复制原数组后修改对应列

# 保留左列、右列置零
left_channel = np.copy(both_channels)
left_channel[:, 1] = 0

# 保留右列、左列置零
right_channel = np.copy(both_channels)
right_channel[:, 0] = 0

方式2:初始化零数组后赋值保留列(内存效率更高)

直接创建和原数组形状、类型一致的全零数组,只把需要保留的列赋值为原数组对应值,不需要额外复制整份原数组:

left_channel = np.zeros_like(both_channels)
left_channel[:, 0] = both_channels[:, 0]

right_channel = np.zeros_like(both_channels)
right_channel[:, 1] = both_channels[:, 1]

执行以上操作后,你可以通过print(both_channels)验证,原始数组的值不会发生任何变化,left_channel和right_channel就是你需要的两个独立数组。

内容的提问来源于stack exchange,提问作者Outspoken

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 23:54:04