问题标签 [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 回答
41 浏览

python - 在 NumPy 中使用掩码编写有效的代码以应用反向操作

首先,我有一个压缩的 numpy 数组 c 和一个掩码 m,用于从完整数组 a 生成 c。

我想输出一个与原始数组 a 形状相同的重建数组 b,但结果来自压缩数组。以下代码适用于此,但我不知道如何使其高效。任何指导将不胜感激

这导致:

0 投票
0 回答
310 浏览

python - 如何获取被布尔 NumPy 数组屏蔽的范围的子集?

我需要对[0, n)具有必须始终忽略的值的连续整数范围进行整数数组索引。忽略的值不应出现在结果中。并且有一个独立的 NumPy 布尔长度数组n(即掩码),指示是否忽略原始范围的元素。

在纯 Python 中,我会这样写:

对于这个输入

调用的结果get_non_masked_indices(mask, idxs)

这是一种常用的数组处理模式(尤其是在图形算法中)。是否有 NumPy 函数来促进这一点?

到目前为止,我提供了以下选项:

  • 原生 NumPy 索引
  • 使用索引掩码进行掩码
  • 索引屏蔽范围

原生 NumPy 索引:

使用索引掩码进行掩码:

索引屏蔽范围:

来自应用程序的示例

假设我们有一个图,表示为相邻节点的 NumPy 数组列表。

图形着色

我感兴趣的函数只需要返回节点的非彩色邻居:

0 投票
1 回答
49 浏览

python - 如何使用较低的暗淡数组作为掩码创建一个 numpy 掩码数组?

认为

我想

或同等学历。

意思是,我想用 访问amaskwheremask是较低维度的,并有自动广播。我想np.ma.arraymask=参数的构造函数中使用它。

0 投票
2 回答
122 浏览

python - 查找在 Numpy 中被屏蔽的位置

我想在蒙面数组中获得位置。像这样

wt 和 chl 形状相同。我想根据 chl 的值和属性(是否屏蔽)给 wt 值。

有谁知道我应该怎么做?

先感谢您。

0 投票
1 回答
99 浏览

netcat - 使用 masked_array 时如何从我的降水数据中保持相同的单位?

我正在尝试使用一个nc文件创建降水图,类似于我在此处找到的 NWS 示例。

不过,就我而言,我的降水数据已经在mm. 如何保持相同的单位?我确实阅读了以下内容,

创建一个numpy.ma.MaskedArray附加单位。这是一个薄包装器numpy.ma.masked_array(),可确保单元正确附加到结果(否则单元会默默丢失)。单位取自 data_units 参数,或者如果是None,则使用数据上的单位。

我为我的文件遵循了给定的参数(masked_array(data, data_units=None, **kwargs)),但是

  1. kwargs 没有定义,并且
  2. 当我不包括 kwargs 时,我得到

“AttributeError:‘MaskedArray’对象没有属性‘units’”。

我是初学者,所以请温柔。感谢您的指导!这是我的代码...

0 投票
1 回答
93 浏览

python - 为什么 np.ma.array 采用倒置掩码?

我有一些数组

和一些面具

并且可以做到


然而,

相当于

相当于


这对我来说似乎违反直觉。

希望 numpy 对这种设计选择做出解释。

0 投票
2 回答
166 浏览

python - ValueError 无法广播从形状 (1) 到形状 () 的掩码

有很多与ValueErrors 相关的问题,其中不同形状的输入数组无法在 SO 在这里广播。但没有一个与面具有关:

我正在做的是以下内容:

  • 遍历 NetCDF 4 文件(根组)中的所有变量
  • 将其内容从一个 NetCDF 文件复制到另一个新创建的文件中

原因与这个问题无关,但可以在这个问题中找到。

最小代码:

这适用于所有变量的较新 Python(使用 >= 3.6 测试),但不适用于Python 2.7 †</sup> 用于未填充的标量 NetCDF 变量。在调试器中,就在引发此异常时,感兴趣的变量看起来像(在Python 2.7 和 3.6 中):

所以这只发生在的标量 NetCDF 变量上。另一方面,将一个掩码常量分配给另一个掩码常量是可行的。只是里面的那个被屏蔽的常数。netCDF4._netCDF4.Variable为什么?以及如何解决?

编辑:numpy 1.7.1 和 netcdf4 1.2.7 发生故障。<- 这原来是问题的根源,请参阅此答案


variable是类型netCDF4._netCDF4.Variable,并且 print(dir(variable))显示['__array__', '__class__', '__delattr__', '__delitem__', '__doc__', '__format__', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__len__', '__new__', '__orthogonal_indexing__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '_assign_vlen', '_cmptype', '_enumtype', '_get', '_getdims', '_getname', '_grp', '_grpid', '_has_lsd', '_iscompound', '_isenum', '_isprimitive', '_isvlen', '_name', '_nunlimdim', '_put', '_toma', '_varid', '_vltype', 'assignValue', 'chunking', 'datatype', 'delncattr', 'dimensions', 'dtype', 'endian', 'filters', 'getValue', 'get_var_chunk_cache', 'getncattr', 'group', u'long_name', 'mask', 'name', 'ncattrs', 'ndim', 'renameAttribute', 'scale', 'set_auto_mask', 'set_auto_maskandscale', 'set_auto_scale', 'set_var_chunk_cache', 'setncattr', 'setncattr_string', 'setncatts', 'shape', 'size']


†</sup> 是的,我知道 Python 2 已停产。但它是必要的[插入来自遗留开发环境的原因]。

0 投票
3 回答
115 浏览

python - Comparing two numpy arrays for compliance with two conditions

Consider two numpy arrays having the same shape, A and B, composed of 1s and 0s. A small example is shown:

I now want to assign values to the two Boolean variables test1 and test2 as follows:

test1: Is there at least one instance where a 1 in an A column and a 1 in the SAME B column have row differences of exactly 1 or 2? If so, then test1 = True, otherwise False.

In the example above, column 0 of both arrays have 1s that are 2 rows apart, so test1 = True. (there are other instances in column 2 as well, but that doesn't matter - we only require one instance.)

test2: Do the 1 values in A and B all have different array addresses? If so, then test2 = True, otherwise False.

In the example above, both arrays have [4,3] = 1, so test2 = False.

I'm struggling to find an efficient way to do this and would appreciate some assistance.

0 投票
1 回答
131 浏览

python - 将 += 与 numpy.array 和 numpy.ma.array 一起使用的奇怪行为

谁能向我解释以下结果?我知道这不像通常会执行此操作,但我发现这个结果很奇怪。

我预计c不会改变,但我想这里有一些与内存中的对象相关的事情。此外,+=保留原始对象,同时=创建+一个新的d.

我只是不太明白添加到c.

0 投票
2 回答
49 浏览

python - numpy 2d:如何仅获取第二列中允许的值的第一列中最大元素的索引

帮助找到解决问题的高性能方法:我在神经网络(answers_weight)之后有一个结果,一个答案类别(same len)和当前请求的允许类别:

我需要知道最大元素的索引(在answers_weight数组中),但跳过不允许的类别(2,3)。

最后,索引必须= 2(“3.0”,因为“3.8”必须跳过,因为类别不允许)