bugfix> python > 投稿

私は次のようにnumpy配列を持っています:

array([[ 0.08778,  0.99666,  0.30648],
       [ 0.41688,  2.70076,  1.10135],
       [ 1.90494,  0.91685, -0.26984],
       [-0.44512,  1.73972, -1.24406],
       [-1.68572,  1.01617,  1.01221],
       [-0.1977 , -0.77177, -0.35553],
       [ 0.61588,  3.6995 ,  1.59813],
       [ 2.98863,  0.86173, -0.59616],
       [-0.78312,  2.20935, -2.22362],
       [-2.73208,  1.02071,  1.44702],
       [-0.36006, -1.82939, -0.72827]])

配列の各値に0.05を追加したいのです。

new_array = array + 0.1

最初の行[0.08778、0.99666、0.30648]に対してこれを実行したくない場合を除きます。これを行う簡単な方法があるように感じますが、私はそれを考えることができません!

回答 1 件
  • あなたはこのようにすることができます:

    import numpy as np
    a = np.array([[ 0.08778,  0.99666,  0.30648],
           [ 0.41688,  2.70076,  1.10135],
           [ 1.90494,  0.91685, -0.26984],
           [-0.44512,  1.73972, -1.24406],
           [-1.68572,  1.01617,  1.01221],
           [-0.1977 , -0.77177, -0.35553],
           [ 0.61588,  3.6995 ,  1.59813],
           [ 2.98863,  0.86173, -0.59616],
           [-0.78312,  2.20935, -2.22362],
           [-2.73208,  1.02071,  1.44702],
           [-0.36006, -1.82939, -0.72827]])
           
    a[1:] += 0.05
    print(a)
    
    

    そして、出力は次のようになります。

    [[ 0.08778  0.99666  0.30648]
     [ 0.46688  2.75076  1.15135]
     [ 1.95494  0.96685 -0.21984]
     [-0.39512  1.78972 -1.19406]
     [-1.63572  1.06617  1.06221]
     [-0.1477  -0.72177 -0.30553]
     [ 0.66588  3.7495   1.64813]
     [ 3.03863  0.91173 -0.54616]
     [-0.73312  2.25935 -2.17362]
     [-2.68208  1.07071  1.49702]
     [-0.31006 -1.77939 -0.67827]]
    
    

    書くことを覚えておいてください b = a[1:] + 0.05 同等ではありません。 b の最初の行はありません a 。別の変数に保存する場合は、最初に配列全体をコピーする必要があります

あなたの答え