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

求助:numpy.resize函数为何未生效?数组形状始终无变化

解决Numpy数组resize不生效及调整形状至(4096,15)的问题

为什么你的代码里数组形状没变化

np.resize() 不会直接修改原数组,而是返回一个调整后的新数组。你之前的代码没有将返回值赋值给原变量,所以myArr的形状始终保持(4,2)。修改后的代码示例:

import numpy as np

myArr = np.array([[0, 1], [2, 3], [3, 4], [5, 6]])
print(myArr.shape, "\n", myArr, "\n")
myArr = np.resize(myArr, (6, 2))  # 将新数组赋值给原变量
print(myArr.shape, "\n", myArr, "\n")
myArr = np.resize(myArr, (4, 3))  # 将新数组赋值给原变量
print(myArr.shape, "\n", myArr, "\n")

运行后就能看到数组形状和内容的变化。

将(*,15)的数组调整为(4096,15)

根据你需要的填充逻辑,提供两种常用方案:

方案1:重复原数组元素填充(Numpy默认逻辑)

使用np.resize()会自动循环重复原数组的内容,补足到目标行数:

import numpy as np

# 示例原数组,形状为(n,15),n为任意小于4096的数
arr = np.random.rand(100, 15)
# 调整为目标形状
new_arr = np.resize(arr, (4096, 15))
print(new_arr.shape)  # 输出(4096,15)

方案2:填充特定固定值(如0)

如果需要填充固定值而非重复原数组,可以手动创建目标数组并复制原内容:

import numpy as np

arr = np.random.rand(100, 15)  # 示例原数组
target_shape = (4096, 15)

# 创建指定填充值的目标数组,这里以0为例
new_arr = np.zeros(target_shape, dtype=arr.dtype)
# 将原数组内容复制到新数组的前n行
new_arr[:arr.shape[0], :] = arr
print(new_arr.shape)  # 输出(4096,15)

你可以把np.zeros换成np.ones或其他生成固定值数组的方法,实现自定义填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:34:57