numpy: использование оператора – с массивами, содержащими None

У меня есть список чисел, которые я ввел в массив 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] 

Как я могу достичь этого простым и эффективным способом?

    Моя рекомендация заключается в том, чтобы использовать маскированные массивы:

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

    или NaNs

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

    Я фактически предпочитаю NaNs как отсутствующие индикаторы данных.