6

numpy配列に入れた数字のリストがあります:

>>> import numpy as np
>>> v=np.array([10.0, 11.0])

次に、配列の各値から数値を減算します。これは、numpy配列を使用して次のように実行できます。

>>> print v - 1.0
[  9.  10.]

残念ながら、私のデータには、で表される欠落値が含まれていることがよくありますNone。この種のデータの場合、次のエラーが発生します。

>>> v=np.array([10.0, 11.0, None])
>>> print v - 1.0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'

上記の例で取得したいのは次のとおりです。

 [  9.  10.  None]

どうすれば簡単かつ効率的な方法でそれを達成できますか?

4

1 に答える 1

9

私の推奨事項は、マスクされた配列を使用することです。

v = np.ma.array([10., 11, 0],mask=[0, 0, 1])
print v - 10
>>> [0.0 1.0 --]

またはNaN

v = np.array([10.,11,np.nan])
print v - 10
>>> [  0.   1.  nan]

私は実際、欠測データの指標としてNaNを好みます。

于 2013-02-13T16:53:14.020 に答える