【问题标题】:Why does the numpy angle function return values also for the masked array values为什么 numpy 角度函数也为掩码数组值返回值
【发布时间】:2011-12-01 18:34:57
【问题描述】:

如果您尝试以下代码段

import numpy as np
import numpy.ma as ma

a = np.random.random(100) + 1j*np.random.random(100)
mask = np.ones_like(a, dtype='bool')
mask[0:9] = False
a = ma.masked_array(a, mask)
phase = np.angle(a)

相位阵列不会被屏蔽。角度函数将返回整个数组的值,即使是被屏蔽的值。我在这里做错了什么还是应该是这样?如果有,为什么?

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    快速查看了 numpy 源代码,它可能是一个错误/尚未实现。

    它在 numpy.ma 页面上被列为“缺少的功能(正在进行中)”,问题 #1:http://projects.scipy.org/numpy/wiki/MaskedArray

    问题在于,许多一元函数(例如np.anglenp.quantile)在源代码中调用[np.]asarray,从而去掉了掩码。

    正如开发人员在我链接到的页面中解释的那样,如果这些函数使用 ma.asarray 而不是 np.asarray 他们会工作,但他们不会:(。

    我猜这是一个尚未提交的补丁?

    作为临时解决方法,np.angle 基本上调用np.arctan2(a.imag,a.real)(可选乘以 180/pi 来获得度数),因此您可以使用它。

    【讨论】:

      猜你喜欢
      • 2019-09-23
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      • 2014-06-06
      • 1970-01-01
      • 2022-07-12
      • 1970-01-01
      相关资源
      最近更新 更多