Python中如何将小ndarray数据复制到大ndarray的前700行?
如何将小numpy数组的数据复制到大数组的前N行?
嘿,这个问题其实比你想的简单多啦,numpy的切片赋值刚好能完美解决这个需求,不用复杂的函数,一行代码就能搞定。
首先咱们确认下:你的大数组是(2800, 256, 256, 3),小数组是(700, 256, 256, 3),后面三个维度完全匹配,这就满足了直接赋值的前提条件。
直接看代码示例吧,非常直观:
import numpy as np # 创建全零大数组(dtype可以根据你的实际数据调整) big_array = np.zeros((2800, 256, 256, 3), dtype=np.float32) # 模拟带数据的小数组(实际场景替换成你的真实数据即可) small_array = np.random.rand(700, 256, 256, 3) # 核心操作:把小数组的数据复制到大数组的前700行 big_array[:700] = small_array # 可以验证下结果是否正确 print(np.array_equal(big_array[:700], small_array)) # 输出True就说明复制成功啦
这里的[:700]就是取大数组的前700行,numpy会自动把小数组的每一行对应填充到大数组的对应位置上——因为后面的维度完全一致,赋值操作会自动匹配维度完成复制。
如果你的两个数组数据类型不一样(比如一个是uint8一个是float32),numpy会自动帮你做类型转换,要是有特殊需求,也可以手动指定dtype来统一。
内容的提问来源于stack exchange,提问作者Spinifex3
相关产品推荐
相关产品推荐

