This postは、無効にしたい "機能"を示します。
現在のnumpyの行動:numpy fancyのインデックス作成と割り当てを無効にしますか?
>>> a = arange(10)
>>> a[a>5] = arange(10)
array([0, 1, 2, 3, 4, 5, 0, 1, 2, 3])
それが問題だ理由:「壊れたべき乗則」を作るために、例えば(私はブレークポイントのいずれかの側の値の2つの異なるセットを持っている配列を望んでいたと言いますか、いくつかの他の単純な区分的関数)。 - 左右の形状が右サイドがスカラーではありませんとを反対するが、numpyのは私が行うことができます
>>> x = empty(10)
>>> a = arange(10)
>>> x[a<=5] = 0 # this is fine
>>> x[a>5] = a**2 # this is not
# but what I really meant is this
>>> x[a>5] = a[a>5]**2
最初の行動、x[a>5] = a**2
私は直感に反し考えると何かを生み出す:私は誤ってこのような何かを行う可能性がありますこの割り当て。他の投稿に指摘されているように、x[5:]=a**2
は許可されていません。
私の質問:割り当てを実行する代わりにをException
にする方法はありますか?私はこの現象を疑うことはなかったので、コードに隠れているタイプミスをしていることを心配しています。
クール、それは素敵な回避策だ - 私は今、私のコードでそれを使用して起動します。明示的>暗黙的、すべての後... – keflavich