Numpy中np.empty_like输出的数值2097184代表什么含义?
关于np.empty_like返回固定值2097184的问题解答
你提供的复现代码如下:
import numpy as np x = np.array([[1,2,3], [4,5,6], [7,8,9], [10, 11, 12]]) print(x) y = np.empty_like(x) print(y) # 输出 # [[2097184 2097184 2097184] # [2097184 2097184 2097184] # [2097184 2097184 2097184] # [2097184 2097184 2097184]]
核心原理说明
np.empty_like 的设计逻辑是:仅申请和输入数组形状、数据类型完全匹配的内存空间,不会对内存做任何初始化操作,直接返回内存地址上当前存储的原有数值,这也是它比np.zeros_like、np.ones_like性能更高的核心原因。因此它返回的初始值本质是内存的遗留数据,没有统一的预设含义。
2097184的相关说明
2097184换算为十六进制为0x200020,你遇到全量返回该值的情况属于运行环境的巧合,通常对应两种场景:
- 部分简化Python运行环境(比如在线编辑器、教学类IDE)会对未初始化的堆内存做统一占位标记,方便开发者识别未赋值的内存区域,2097184是这类环境常用的标记值
- 你当前运行环境的这块内存刚好在之前被其他操作(比如Python小整数缓存、之前执行的numpy临时运算)写入过相同数值,换设备或者换运行时机大概率会得到完全不同的输出值。
注意:所有通过
np.empty、np.empty_like创建的数组,使用前必须手动覆盖所有元素的取值,绝对不能依赖其初始值做任何逻辑判断,否则会出现不可复现的运行错误。
内容的提问来源于stack exchange,提问作者qg_java_17137
相关产品推荐
相关产品推荐

