Ответ 1
(Undeleting это согласно обсуждению выше...)
Я не уверен, считают ли разработчики numpy этой ошибкой или ожидаемым поведением. Я спросил в списке рассылки, поэтому, я думаю, мы увидим, что они говорят.
В любом случае это легко исправить. Патч numpy/lib/function_base.py
для использования numpy.asanyarray
, а не numpy.asarray
на входах функции позволит ему правильно использовать маскированные массивы (или любой другой подкласс ndarray) без создания копии.
Изменить: похоже, это ожидаемое поведение. Как обсуждалось здесь:
Если вы хотите игнорировать маскированные данные, это просто при вызове дополнительной функции
Гистограмма (m_arr.compressed())
Я не думаю, что это делает дополнительная копия будет актуальной, потому что я предполагаю, что полный маскированный массив обработка внутренней гистограммы будет намного дороже.
Использование asanyarray также позволит матрицы в и других подтипах, которые может быть неправильно обработано гистограммы.
Для чего угодно, кроме сброса замаскированные наблюдения, это было бы необходимо выяснить, что определение маскированной матрицы гистограммы как указал Брюс.