あなたのnumpy配列は次のとおりです。
A = [1,1,2,3,4]
あなたは簡単に行うことができます:
+ .1
そのすべての要素numpy配列に数値を追加するには
A[::2] +1
配列全体をそのまま維持しながら、奇数または偶数のインデックス番号に数値を追加する方法を探しています。
ループなしですべての奇数または偶数のインデックス付き要素に数値を追加することは可能ですか?
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])
これにより が変更されることに注意してください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.])
以前の回答に加えて、奇数のインデックスを持つ数値を変更するには、A[::2]の代わりにA[1::2]を使用する必要があります
リスト内包表記のあるものが機能する可能性があります。
A = [1,1,2,3,4]
A = [A[i] + (0 if (i%2 == 0) else .1) for i in range(len(A))]
三項ですばやく汚れます。お使いのバージョンの Python では動作しない可能性があります。動作するバージョンを思い出せません。
Python 2.7.3 と Python 3.2.3 で確認すると、出力は同じです。
>>> 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]