我有一个装满花车的numpy数组。如何用np.inf*0
替换每个第5个值,以便在每个第5个索引处获得NaN
值?
my_array = np.array([5.0, 8.1, 3.2, 2.7, 8.4, 4.9 ...])
到
my_array = np.array([5.0, 8.1, 3.2, 2.7, NaN, 4.9 ...])
等等。
答案 0 :(得分:7)
使用切片和跨步怎么样? L[::5]
从列表L
中获取每个第5个元素:
>>> my_array = np.arange(20.)
>>> my_array[4::5] = np.nan
>>> my_array
array([ 0., 1., 2., 3., nan, 5., 6., 7., 8., nan, 10.,
11., 12., 13., nan, 15., 16., 17., 18., nan])
答案 1 :(得分:6)
比@ alko更简单,比@mdml的更正确。
import numpy
my_array = numpy.linspace(0, 1, 20)
my_array
#>>> array([ 0. , 0.05263158, 0.10526316, 0.15789474, 0.21052632,
#>>> 0.26315789, 0.31578947, 0.36842105, 0.42105263, 0.47368421,
#>>> 0.52631579, 0.57894737, 0.63157895, 0.68421053, 0.73684211,
#>>> 0.78947368, 0.84210526, 0.89473684, 0.94736842, 1. ])
my_array[4::5] = numpy.nan
my_array
#>>> array([ 0. , 0.05263158, 0.10526316, 0.15789474, nan,
#>>> 0.26315789, 0.31578947, 0.36842105, 0.42105263, nan,
#>>> 0.52631579, 0.57894737, 0.63157895, 0.68421053, nan,
#>>> 0.78947368, 0.84210526, 0.89473684, 0.94736842, nan])