我尝试使用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。
答案 0 :(得分:3)
请参阅https://docs.scipy.org/doc/numpy/reference/generated/numpy.empty.html:
与empty不同,zeros不会将数组值设置为零,并且可能 因此速度要快一些。另一方面,它需要 用户手动设置数组中的所有值,应该使用 谨慎。
无法保证这些值可以是任何值。值恰好为零的原因是内存未初始化,因此事先在该内存中的任何内容都必须将这些地址的值保留为零(大多数)。从本质上讲,这些值将是完全随机的,但不一定均匀分布。
对你而言,问题是,你为什么关心未初始化阵列中的内容,为什么你甚至首先看到这些值?你期待发生什么?