为什么numpy函数empty()只生成零?

时间:2016-12-01 19:15:06

标签: python numpy

我尝试使用numpty中的empty()生成数组,但发生了一些奇怪的事情:

empty(3); empty(4); empty(5)

总是给出零的数组。即使第一次出现非零数字(非常小的数字),它们也会从第二次变为全零,例如,我第一次输入empty(5)

array([  0.00000000e+000,   0.00000000e+000,   2.12332334e-314,
     2.12517151e-314,   0.00000000e+000])

第二次输入empty(5)

array([ 0.,  0.,  0.,  0.,  0.])

我使用的python版本是2.7。

1 个答案:

答案 0 :(得分:3)

请参阅https://docs.scipy.org/doc/numpy/reference/generated/numpy.empty.html

  与empty不同,

zeros不会将数组值设置为零,并且可能   因此速度要快一些。另一方面,它需要   用户手动设置数组中的所有值,应该使用   谨慎。

无法保证这些值可以是任何值。值恰好为零的原因是内存未初始化,因此事先在该内存中的任何内容都必须将这些地址的值保留为零(大多数)。从本质上讲,这些值将是完全随机的,但不一定均匀分布。

对你而言,问题是,你为什么关心未初始化阵列中的内容,为什么你甚至首先看到这些值?你期待发生什么?