add a number to all odd or even indexed elements in numpy array without loops

前端 未结 4 1224
后悔当初
后悔当初 2021-02-07 14:30

Lets say your numpy array is:

 A =    [1,1,2,3,4]

You can simply do:

A + .1

to add a number to tha

4条回答
  •  梦毁少年i
    2021-02-07 14:49

    Something with list comprehension could work.

    A = [1,1,2,3,4]
    A = [A[i] + (0 if (i%2 == 0) else .1) for i in range(len(A))]
    

    Just quick and dirty with a ternary. Might not work in your version of Python, can't remember which versions it works with.


    Checked in Python 2.7.3 and Python 3.2.3, output is the same:

    >>> A = [1,1,2,3,4]
    
    >>> A
    [1, 1, 2, 3, 4]
    
    >>> A = [A[i] + (0 if (i%2 == 0) else .1) for i in range(len(A))]
    
    >>> A
    [1, 1.1, 2, 3.1, 4]
    

提交回复
热议问题