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

使用np.repeat扩展数组形状时Jupyter内核崩溃求助

NumPy数组形状匹配问题解决方法

你确实误用了np.repeat函数,问题出在第二个参数b[1]:b[1]是形状为(1400,600)的数组,将其传给repeat时,NumPy会把它当作沿axis=1的每个元素需要重复的次数,这会导致生成的数组规模远超内存承载上限(计算下来元素量达到19201400600*600),直接引发Jupyter内核崩溃。

正确解决方法

方法1:用np.repeat传入重复次数

你需要沿axis=1重复1400次,直接传入整数1400即可:

import numpy as np

# 原始数组
a = np.random.rand(1920, 600)
# 新增axis=1维度,形状变为(1920,1,600)
a_expanded = a[:, np.newaxis, :]
# 沿axis=1重复1400次
a_repeated = np.repeat(a_expanded, 1400, axis=1)
# 结果形状为(1920,1400,600),与b一致

方法2:用np.broadcast_to(内存友好)

如果只是需要让数组在计算时能和b广播匹配,不需要实际复制数据,优先用np.broadcast_to,它生成的是原数组的视图,不会占用额外内存:

a_broadcast = np.broadcast_to(a[:, np.newaxis, :], b.shape)

注意:该视图是只读的,若需要修改数据,改用其他方法。

方法3:用np.tile按块重复

tile按指定的块数重复数组,也能实现需求:

a_tiled = np.tile(a[:, np.newaxis, :], (1, 1400, 1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:45:10