In [360]: x = np.array([1,2,3])
In [361]: x[1]
Out[361]: 2
np.take
позволяет индексировать с помощью режима управления.По умолчанию выдается сообщение об ошибке, если индекс выходит за пределы (другие документы см. В документации):
In [363]: np.take(x,1)
Out[363]: 2
In [364]: np.take(x,-2)
Out[364]: 2
In [365]: np.take(x,5)
----
IndexError: index 5 is out of bounds for size 3
Вы можете написать небольшую функцию, которая переносит это в try/except
, возвращая np.nan
в случае IndexError
.
Имейте в виду, что np.nan
- это число с плавающей запятой, в то время как ваш пример массива - целочисленный тип d.