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

如何高效复制Numpy二维数组的指定列至另一个数组并将修改后的值写回原数组

高效操作NumPy数组:快速复制列与更新原数组

嘿,我懂你为啥头疼那个慢得离谱的循环了——Python层面的逐行遍历对NumPy数组来说真的是大材小用,完全浪费了NumPy底层向量化优化的优势。咱们用两行代码就能解决这两个问题,既快又简洁!

1. 把indi的第4列快速复制到rebalance

别再用for循环逐行赋值了,NumPy的切片操作直接就能搞定整个列的复制,而且是底层C实现的,速度快到飞起:

# 提取indi的第4列(索引3),转成float后赋值给rebalance的第一列
rebalance[:, 0] = indi[:, 3].astype(float)

这行代码一次性处理所有行,不管你的数组有多少行,效率都比循环高N倍。运行后rebalance就会和你预期的输出完全一致,类型也是<class 'numpy.ndarray'>。

2. 将修改后的rebalance写回indi的对应位置

因为你的indi数组是object类型(混合了整数和字符串),所以只需要把rebalance里的数值转成字符串,再直接赋值给indi的第4列就行:

# 把rebalance的第一列转成字符串,替换indi的第4列(索引3)
indi[:, 3] = rebalance[:, 0].astype(str)

执行完这行代码,indi数组就会变成你想要的样子,所有第4列的元素都会被更新为rebalance里的对应值,保持字符串类型的格式。

小提醒

如果你的indi数组后续不需要混合类型,可以考虑把第4列单独转成数值类型(比如float),这样后续操作会更高效,但根据你给出的示例,转成字符串是符合需求的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 21:08:13