2016-11-20 8 views
0

私のデータを2Dマトリックスに設定しましたが、今はマルチタイプのマトリックスを持っていて、すべての値を浮動小数点に変換する必要があります。マルチタイプ2D行列を浮動行列に変換しますか?

たとえば、私の行列の1つの行は次のようなものです:['0'、 'N'、 '1.1'、 '0.555'、 'No'、 '23'、 'yes'] これを行うが、私はエラーに直面するだろう:ValueErrorを :

floatMatrix = [ [ np.float64(eachVal) for eachVal in row ] for row in data] 

エラーは、この文字列をfloatに変換することができませんでした:「N」

答えて

0

try-exceptは、あなたのケースに適合します。私はすべての値を浮動小数点に変換したいので、@ Psidomよりも少し良い機能を提案します。

floatMatrix = [ [ convert(eachVal) for eachVal in row ] for row in data]

+0

ありがとう!それは働いている! –

0

あなたの行列の要素をfloatに変換するカスタマイズされた関数を記述し、それが可能でない場合、つまり文字列の場合、要素を返します。そして、リスト内の要素の種類を変換する機能を使用します。

def conv(x): 
    try: 
     return float(x) 
    except: 
     return x 

[conv(x) for x in row] 
# [0.0, 'N', 1.1, 0.555, 'No', 23.0, 'yes'] 
+0

どうもありがとう:あなたの変換されたデータの作成

def convert(x, default=0): try: return float(x) except: return default 

!あなたの提案は機能しています! –

関連する問題