在没有循环的numpy数组中为所有奇数或偶数索引元素添加一个数字

pyC*_*hon 9 python arrays numpy

让我们说你的numpy数组是:

 A =    [1,1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

你可以简单地做:

A + .1

为每个元素numpy数组添加一个数字

我正在寻找一种方法来将数字添加到奇数或偶数索引数字,A[::2] +1同时保持整个数组完整.

是否可以在没有任何循环的情况下为所有奇数或偶数索引元素添加数字?

unu*_*tbu 21

In [43]: A = np.array([1,1,2,3,4], dtype = 'float')

In [44]: A[::2]  += 0.1

In [45]: A
Out[45]: array([ 1.1,  1. ,  2.1,  3. ,  4.1])
Run Code Online (Sandbox Code Playgroud)

请注意,这会修改A.如果您希望不加A修改,A请先复制:

In [46]: A = np.array([1,1,2,3,4], dtype = 'float')

In [47]: B = A.copy()

In [48]: B[::2]  += 0.1

In [49]: B
Out[49]: array([ 1.1,  1. ,  2.1,  3. ,  4.1])

In [50]: A
Out[50]: array([ 1.,  1.,  2.,  3.,  4.])
Run Code Online (Sandbox Code Playgroud)


Edw*_*its 10

除了以前的答案,要修改具有奇数索引的数字,你应该使用A [1 :: 2]而不是A [:: 2]