【发布时间】:2020-05-11 18:36:22
【问题描述】:
np.empty(()) 究竟做了什么?
例如,如果我想创建一个 5 行和 5 列的空数组,我会使用 np.empty((5,5))。这给出了一个随机输出,如:
[[0.57061489 0.57883359 0.5746548 0.57756612 0.57587218]
[0.62539185 0.62139618 0.62313292 0.62097162 0.62221129]
[0.70896235 0.57620393 0.73345734 0.53891594 0.75331689]
[0.72820808 0.56994986 0.78769608 0.47609684 0.8334235 ]
[0.62921645 0.70930812 0.6068869 0.74827839 0.55498477]]
1.为什么它给出0-1之间的随机输出而不是从内存中生成值 - 比如 7.6662e-301、5.3767e-301..... 等等?
如果我在新文件中再次运行代码np.empty((5,5)),我会得到与上面相同的输出。 为什么会这样?
【问题讨论】:
-
The docs 指定“给定形状的未初始化(任意)数据数组”。在我的机器上我得到
array([[1.40031700e-311, 1.40037027e-311, 1.37961641e-306, etc。这些值可能只是该内存地址中曾经存在的任何内容的表示,转换为float。 -
@CoryKramer 是的,可能是这样,我在我的机器上重新启动了内核并获得了这些内存地址值。以前我将我的空数组等同于另一个数组。所以它将这些值带入了它的内存地址。好的,谢谢!
-
除非您打算以某种方式设置 every 元素,否则不要使用
np.empty。这就是任意的含义。 -
@hpaulj 是的,我实际上想将这些元素与其他元素一起设置......
标签: python arrays numpy memory random