2016-04-25 14 views
2

簡単な考えで少し問題があります。私は、データの配列を持っており、値がそれを解決するためにX.xより大きい場合に配列の値を置き換えます

より大きい場合、私はそれぞれの値を交換したいと思い、私は同じアイデアを与える例として、小さなスクリプトを書いた:

import numpy as np 

# Array creation 

array = np.array([0.5, 0.6, 0.9825]) 

print array 

# If value > 0.7 replace by 0. 

new_array = array[array > 0.7] == 0 

print new_array 

を私が取得したいと思います:あなたは私を助けることができれば

>>> [0.5, 0.6, 0] # 0.9825 is replaced by 0 because > 0.7 

ありがとう;)

EDIT:

私はこの主題が私を助ける方法を見つけませんでした:Replace all elements of Python NumPy Array that are greater than some value @ColonelBeauvelによって与えられた答えは、前の投稿に気付かれません。

答えて

3

は、私は、このソリューションが提供さ@DonkeyKongリンクで提供されていない理由を不思議に思う:

np.where(arr>0.7, 0, arr) 
#Out[282]: array([ 0.5, 0.6, 0. ]) 
+0

ありがとうございました!それは非常にうまくいく!私は 'np.where'も見ていた;) – Deadpool

0

方法について

a = [0.5, 0.6, 0.9825] 
b = [(lambda i: 0 if i > 0.7 else i)(i) for i in a] 

ここにはlambda expressionの中にlist comprehensionsがあります。 リンクを確認してください

+1

このコードが質問に答えるかもしれないが、理由や質問にどう答えるかに関する追加の文脈を提供することで、長期的な価値が大幅に改善されるだろう。あなたの答えを[編集]して、説明を加えてください。 – CodeMouse92

関連する問題