Pythonの配列の中括弧の中にif-else文を使って値を代入するのが良い方法があるのだろうかと思います。私が欲しいのは次のようなものです:Pythonの配列の中括弧の中にif-else文を使用できますか?
A = #some 2D array of length m by n, already initialized
A = np.float64(A)
val = someValue #any number, pick a number
A = [[val for j in range(n) if A[i][j] < val, else A[i][j]=A[i][j]] for i in range(m)]
これはいい方法ですか?代わりに、numpyがこれを計算するより速い方法を持っていれば、それほど良いとは限りません。
私が達成しようとしています何をすべきか長い方法は、所望の出力がその閾値に、閾値以下のいずれかの値を設定することです
for i in range(m):
for j in range(n):
if A[i][j] < val:
A[i][j] = val
ようなものになるだろう。
myArray = [otherArray[i] for i in range(theRange) if otherArray[i]>=value and otherArray[i]<=anotherValue]
この1Dの例は私が望むものではありません。これは、私が探しているコーディングブロックのタイプの一例です。伝統的なif-elseステートメントに対する処理が速いようです。
あなたの予想される出力は何ですか? *条件式*を使うことはできますが、やり方ではできません(たとえば、式の中で代入を行うことはできません)。あなたがここで達成しようとしていることは、私には非常に不明です。 –
@MartijnPieters私はちょうど私の質問を改訂しました。 – Lou
'A [A val] = val' –