16

以下のコードがあり、データ内のすべてのゼロを に変換しNoneたいと思います (ここでデータを matplotlib にプロットしたくないため)。ただし、コードは機能せず、0.まだ印刷中です

sd_rel_track_sum=np.sum(sd_rel_track, axis=1)
for i in sd_rel_track_sum:
   print i
   if i==0:
       i=None

return sd_rel_track_sum

誰でもこれに対する解決策を考えることができますか。または、すべての 0 を に転送する方法についての答えですNone。または、Matplotlib でゼロ値をプロットしないでください。

4

2 に答える 2

20

もちろん、使用しない正当な理由がない限り、numpy を使用することをお勧めします ;) そのためには、Daniel の回答を参照してください。

裸の Python ソリューションが必要な場合は、次のようにします。

values = [3, 5, 0, 3, 5, 1, 4, 0, 9]

def zero_to_nan(values):
    """Replace every 0 with 'nan' and return a copy."""
    return [float('nan') if x==0 else x for x in values]

print(zero_to_nan(values))

あなたにあげる:

[3, 5, nan, 3, 5, 1, 4, nan, 9]

Matplotlib はnan(数値ではない) 値をプロットしません。

于 2013-09-09T11:46:38.187 に答える