2
私は、ランダムに配列された1と0からなるnumpy配列を持っています。numpyの配列値を0から-1に変更する
numpy.array([[0,1,1],[1,0,0]])
ゼロを-1に変更するにはどうすればよいですか?
私は、ランダムに配列された1と0からなるnumpy配列を持っています。numpyの配列値を0から-1に変更する
numpy.array([[0,1,1],[1,0,0]])
ゼロを-1に変更するにはどうすればよいですか?
すでに指摘したように、the commentsには、基本的に値を置き換える2つの方法があります。インプレースの値を変更するにはboolean array indexingを使用して、次のいずれか
>>> import numpy as np
>>> arr = np.array([[0,1,1],[1,0,0]])
>>> arr[arr==0] = -1
>>> arr
array([[-1, 1, 1],
[ 1, -1, -1]])
あなたはマスクがTrueで、配列の値のみを取得する((マスクを作成する)arr == 0
ための中間ステップを確認したいとarr[arr == 0]
かもしれません、この場合は値が0です)、何が起こっているのかを理解してください。これは、新しい配列を作成し、条件(最初の引数)がTrueでどこに二番目の引数を使用しています
>>> np.where(arr==0, -1, arr)
array([[-1, 1, 1],
[ 1, -1, -1]])
と:
それとも、値の配列のコピーを作成したい場合はnp.where
がある置き換えそれ以外の場合は、2番目の引数itemsを使用します。
'a [a == 0] = -1'? 'マスキング'を読んで助けてくれるかもしれません。 – Divakar
または 'a = 2 * a - 1'。 –