我有一个装满浮子的numpy阵列.如何更换每个第5个值,np.inf*0以便NaN在每个第5个索引获得一个值?
my_array = np.array([5.0, 8.1, 3.2, 2.7, 8.4, 4.9 ...])
Run Code Online (Sandbox Code Playgroud)
至
my_array = np.array([5.0, 8.1, 3.2, 2.7, NaN, 4.9 ...])
Run Code Online (Sandbox Code Playgroud)
等等.
如何使用切片和跨步?L[::5]从列表中获取每个第5个元素L:
>>> 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])
Run Code Online (Sandbox Code Playgroud)
比@ 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])
Run Code Online (Sandbox Code Playgroud)