import numpy as np
a7=np.empty(100)
a7[0:14]=6
a7[15:60]=4
a7[61:73]=5
a7[74:99]=6
print a7
那么
[ 6.00000000e+000 6.00000000e+000 6.00000000e+000 6.00000000e+000
6.00000000e+000 6.00000000e+000 6.00000000e+000 6.00000000e+000
6.00000000e+000 6.00000000e+000 6.00000000e+000 6.00000000e+000
6.00000000e+000 6.00000000e+000 6.95215775e-310 4.00000000e+000
4.00000000e+000 4.00000000e+000 4.00000000e+000 4.00000000e+000
4.00000000e+000 4.00000000e+000 4.00000000e+000 4.00000000e+000
4.00000000e+000 4.00000000e+000 4.00000000e+000 4.00000000e+000
4.00000000e+000 4.00000000e+000 4.00000000e+000 4.00000000e+000
4.00000000e+000 4.00000000e+000 4.00000000e+000 4.00000000e+000
4.00000000e+000 4.00000000e+000 4.00000000e+000 4.00000000e+000
4.00000000e+000 4.00000000e+000 4.00000000e+000 4.00000000e+000
4.00000000e+000 4.00000000e+000 4.00000000e+000 4.00000000e+000
4.00000000e+000 4.00000000e+000 4.00000000e+000 4.00000000e+000
4.00000000e+000 4.00000000e+000 4.00000000e+000 4.00000000e+000
4.00000000e+000 4.00000000e+000 4.00000000e+000 4.00000000e+000
6.95215673e-310 5.00000000e+000 5.00000000e+000 5.00000000e+000
在每一次转换中,这个异常值出现。或者我可以用另一种方式填充数组吗?我的想法是创建一个包含100个元素的数组,并以上面显示的方式填充它们。你知道吗
首先,你知道,片的停止值是独占的。所以不初始化元素14、60、73和99。你知道吗
其次,
np.empty
不初始化元素,因此您希望使用np.zero
将所有元素初始设置为0。你知道吗[0:14]填充14个值-0…13。a[15:35]填充15…35。所以,在您的代码中,[14]是未赋值的,之前在内存地址中的内容仍然存在。这就是你看到的价值。你知道吗
切片时,第2个参数被排除,因此缺少数组的第14-60-73-99个元素,并且python将它们指定给某个接近零的元素,因为您创建了一个空数组。你知道吗
相关问题 更多 >
编程相关推荐