问题标签 [masked-array]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
564 浏览

python - 在多个维度上平均 numpy 掩码数组

可以在多个维度上计算 numpy 数组的平均值,例如。my_ndarray.mean(axis=(1,2)).

但是,它似乎不适用于掩码数组

如何计算多轴上掩码数组的平均值,最好与普通数组一样简单?

(我宁愿使用不暗示定义新功能的解决方案,如this answer中所建议的那样。)

0 投票
1 回答
1397 浏览

python - 我在使用 numpy searchsorted 时做错了什么?

这在 numpy.searchsorted 中是一种有趣的行为。以下测试失败:

数组中的最后一个条目c是 34,我不知道为什么。但是类似的,它通过了:

numpy.array.searchsorted文档中,它的描述说:

找到排序数组 a 中的索引,这样,如果 v 中的相应元素插入到索引之前,则 a 的顺序将被保留。

0 投票
2 回答
228 浏览

python - 无符号整数 dtype 的掩码数组上的 np.ma.argmax 在 numpy 1.11.0 中返回错误结果

我偶然发现了一个关于屏蔽无符号整数数组和np.ma.argmax.

考虑以下数组:

如果我使用np.ma.argmax结果是我所期望的:

如果我现在屏蔽最后一行,结果是错误的:

它现在认为被屏蔽的行是最大值?我什至将其更改fill_value为 0,但结果保持不变:它仍然认为被屏蔽的行是最大值。似乎这只影响无符号整数数组。

但是np.ma.MaskedArray.argmaxnp.argmax返回正确的结果:

为什么np.ma.argmax这里没有做正确的事情?据我所知,它被定义为方法本身

0 投票
1 回答
141 浏览

python - 如何使用分隔二维数组部分的向量创建掩码数组?

假设我有一个标准的 2d numpy 数组,我们称它为带有值的 my2darray。在这个数组中有两个主要部分。假设对于每一列,有一个特定的行将“scenario1”和“scenario2”分开。我如何创建 2 个掩码数组来表示 my2darray 的顶部和 my2darray 的底部。例如,我有兴趣计算上半部分的平均值和下半部分的平均值。一个想法是有一个与 my2darray 形状相同的掩码,但这似乎是对内存的浪费。有更好的主意吗?假设我有一个向量,其中长度等于 my2darray 中的行数(在本例中为 6),即我有

我正在使用带有 numpy 1.5.0 的 python 2.6

样本矩阵

0 投票
2 回答
138 浏览

numpy - 结构化掩码数组上的高级索引何时*真的*返回副本?

当我有一个带有布尔索引的结构化掩码数组时,在什么情况下可以获得视图以及何时获得副本?文档说高级索引总是返回一个副本,但这不是真的,因为X[X>0]=42技术上高级索引之类的东西,但分配有效。我的情况比较复杂:

我想根据另一个字段的标准设置特定字段的掩码,因此我需要获取该字段,应用布尔索引并获取掩码。有3个!= 6 次这样做。

准备:

  1. 字段 - 索引 - 掩码(失败):

    /li>
  2. 索引 - 字段 - 掩码(失败):

    /li>
  3. 索引 - 掩码 - 字段(失败):

    /li>
  4. 掩码 - 索引 - 字段(失败):

    /li>
  5. 字段 - 掩码 - 索引(成功):

    /li>
  6. 掩码 - 字段 - 索引(成功):

    /li>

所以,看起来索引必须排在最后

0 投票
0 回答
598 浏览

python - 用“孔”(掩码数组)对数组进行插值

我有一组非网格点和一个带有孔的网格 - 由一个包含 NaN 的数组表示(一个掩码数组?)。我试图将非网格点“映射”到这个网格上,然后在网格上进行插值,NaN 区域作为边界。

griddata 可以很好地插入此数据,但会忽略 NaN 值,并且 NaN“墙”一侧的值会影响另一侧的值。(我希望这是有道理的)。

有谁知道是否有任何方法可以强制 griddata 以 NaN 作为边界,并且不允许 NaN 区域一侧的点影响另一侧?

到目前为止,我可以得到这个:

示例图

左图是在非屏蔽数组上执行的网格数据,右图是在屏蔽数组上执行的网格数据。我希望不要看到插值穿过蒙版区域。

这是一个简化的示例,我的蒙版阵列实际上有点复杂(网格/阵列中有一组空白岛或“孔”),因此不能真正孤立地处理部分(就像在这个例子)。

这是我到目前为止所拥有的:

任何帮助将不胜感激!

FP

0 投票
1 回答
408 浏览

python - numpy.ma(屏蔽)数组均值方法的返回类型不一致

我注意到numpy masked-array mean 方法可能不应该返回不同的类型:

其他numpy.ma.core.MaskedArray方法似乎是一致的

有人可以解释一下吗?

更新:正如评论中指出的那样

0 投票
6 回答
108744 浏览

python - 如何正确屏蔽 numpy 二维数组?

假设我有一个二维坐标数组,看起来像

x = array([[1,2],[2,3],[3,4]])

到目前为止,在我之前的工作中,我生成了一个面具,最终看起来像

mask = [False,False,True]

当我尝试在 2D 坐标矢量上使用此蒙版时,出现错误

我想这是有道理的。所以我尝试简单地使用以下掩码:

我得到的很接近:

>>>array([1,2,2,3])

达到我的期望(和想要):

>>>array([[1,2],[2,3]])

必须有一个更简单的方法来做到这一点?

0 投票
1 回答
2462 浏览

python - 替换掩码 numpy 数组中的值不起作用

我知道了。numpy 中的掩码数组称为 arr,形状为 (50, 360, 720):

它有以下特点。arr[0] 中的数据:

-999。是缺失值,我想用 0.0 替换它。我这样做:

但是,即使在此操作之后,arr 仍然保持不变。如何解决这个问题?

0 投票
3 回答
1482 浏览

python - python花式索引与布尔掩码数组

我有一个 numpy 掩码的数据数组:

我有一个特定类型数据的标志,它是一个布尔掩码数组:

我想做类似的事情data[flag]并获得以下输出:

它对应于标志为 True 的数据元素。相反,我得到了这个:

为了更清楚,我没有复制输出的掩码。

我不介意输出带有标志大小的输出,只要它选择我想要的数据(对应于标志的 True 值的数据)。但我无法弄清楚为什么它会在实际输出中给出这些值!