Мудрый минимальный элемент для маскированного массива возвращает действительное значение вместо маскированного значения - PullRequest
0 голосов
/ 28 сентября 2018

Я зацикливаюсь на большом замаскированном массиве вдоль указанной оси, используя поэлементное сравнение между текущими значениями индекса и предыдущими минимумами.

Ниже приведен упрощенный пример для иллюстрации проблемы.Если одно из значений замаскировано, а другое допустимо, numpy.minimum() возвращает замаскированное значение.Можно ли изменить это поведение так, чтобы вместо него возвращалось действительное значение?

x = np.random.randn(5).round(2)
x[[2,4]] = np.nan
print(x)
print(np.minimum(x[-1], x[-2]))

y = np.ma.masked_invalid(x)
print(y)
print(np.minimum(y[-1], y[-2]))

>>  [-1.21  2.02   nan -0.31   nan]
>>  nan
>>  [-1.21 2.02 -- -0.31 --]
>>  --

Вместо этого я хотел бы, чтобы возвращаемое значение было -0,31.

В этом простом примере я мог бы использовать y.compressed() или что-то в этом роде, но в моем случае у меня есть несколько измерений, так что это не работает.

В настоящее время я использую очень высокое значение fill_value, которое работает, поскольку существует физическое ограничение на данные, но я хотел бы иметь более общее решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...