Можно упростить ниже указанный код, избавившись от цикла?
>>> x_new=[]
>>> x=array([1,2,3,4,5])
>>> for i in [1,2,3,4,5]:
... x_new=r_[ x_new, x[(x-i)<2] ]
...
>>> x_new
array([ 1., 2., 1., 2., 3., 1., 2., 3., 4., 1., 2., 3., 4.,
5., 1., 2., 3., 4., 5.])
Мне, все таки, удалось избавиться от цикла.
>>> import numpy
>>> x=numpy.array([1.1,2.2,3.3,4.4,5.5])
>>> y=numpy.concatenate(map(lambda i: x[x-i>2], [0,1,2]))
>>> y
array([ 2.2, 3.3, 4.4, 5.5, 3.3, 4.4, 5.5, 4.4, 5.5])
Но, насколько эффективен такой код? Можно ли его усовершенствовать? Можно ли (ну и нужно ли) избавиться от генерации списка map()-ом?