私は一連のバイナリNumPy配列(特定の時間に曇った(1s)と透明な(0s)の空ピクセルを表します)をまとめて追加し、雲がある観測の総数を求めます各画素に存在する。NumPyアレイを変更/上書きする
クラウドのパーセンテージ(クラウド(1s)/トータルオブザベーション* 100)を探したいと思っていますが、元の変数を変更したいときにNumPy配列を使ってPythonでこれを動作させることはできません。これまで
マイ(簡体字)のコードは次のとおりです。
import numpy as np
arr1 = np.array([1,0,1])
arr2 = np.array([0,0,1])
total1 = np.add(arr1, arr2)
>>> [1 0 2]
total2 = total1 #Purely to make multiple to elaborate my issue
variables = [total1, total2]
for x in variables:
x = x + 100
total1
>>> [1 0 2]
あなたはtotal1
変数が更新されていないことを基本的に見ることができます。それは次のように動作します:
for x in variables:
x += 100
total1
>>> [201, 200, 202]
私はしかし、私は、パーセンテージを計算のようなものにしたい、100で値をインクリメントしたくない:
for x in variables:
x = x/1 * 100 #I have simplified the maths for ease of reading
#This is my desired output - note how total1 is updated, not created
total1
>>> [100, 0, 200]
が、これは動作しません。私は2つ以上の変数があり、n個の変数に対して実行するようにコードを自動化しようとしているので、変数にアクセスしています(変数名はtotal1>合計nです)。
numpyとその配列を見てみましょう。これは完璧なユースケースです。 – Dschoni
あなたのコメントが理解できませんか? NumPy配列を使用していますが、動作しません。詳しく教えてください。 –
コードを明確にすることはできますか?問題は、深いコピーをしたいときに浅いコピーをしているということです。 https://docs.python.org/2/library/copy.html –