2015-05-29 3 views
9

В numpy есть два способа отметить отсутствующие значения: я могу либо использовать NaN, либо masked array. Я понимаю, что использование NaNs (потенциально) быстрее, в то время как маскированный массив предлагает больше функциональности (что?).numpy: разница между NaN и маскированным массивом

Я думаю, мой вопрос: если/когда я должен использовать один над другим? Что такое префикс np.NaN в regular array vs. a masked array?

Я уверен, что ответ должен быть там, но я не мог найти его ...

ответ

8

Разница заключается в данных, хранящихся в двух структурах.

Использование regular array with np.nan, данные за недопустимыми значениями отсутствуют.

Используя masked array, вы можете инициализировать полный массив, а затем применить к нему маску, чтобы определенные значения отображались недействительными. Модуль numpy.ma предоставляет методы, так что вам не придется иметь дело с np.nan поведения (например, np.nan == np.nan всегда False и т.д.)

Если у вас есть массив, где вы никогда не нужны значение, помещенное в недопустимых ячейках, используйте первый. Вы всегда можете реплицировать сложные операции, используя np.nan и некоторые методы индексирования, но для этого нужны маскированные массивы.

2

Из того, что я понимаю, NaN представляет ничего, что не является числом, в то время как замаскированные метки массива недостающие значения или значения, которые являются но недействительны для вашего набора данных.

Я надеюсь, что это поможет.

Смежные вопросы