问题标签 [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.
python - 在 NumPy 中使用掩码编写有效的代码以应用反向操作
首先,我有一个压缩的 numpy 数组 c 和一个掩码 m,用于从完整数组 a 生成 c。
我想输出一个与原始数组 a 形状相同的重建数组 b,但结果来自压缩数组。以下代码适用于此,但我不知道如何使其高效。任何指导将不胜感激
这导致:
python - 如何获取被布尔 NumPy 数组屏蔽的范围的子集?
我需要对[0, n)
具有必须始终忽略的值的连续整数范围进行整数数组索引。忽略的值不应出现在结果中。并且有一个独立的 NumPy 布尔长度数组n
(即掩码),指示是否忽略原始范围的元素。
在纯 Python 中,我会这样写:
对于这个输入
调用的结果get_non_masked_indices(mask, idxs)
是
这是一种常用的数组处理模式(尤其是在图形算法中)。是否有 NumPy 函数来促进这一点?
到目前为止,我提供了以下选项:
- 原生 NumPy 索引
- 使用索引掩码进行掩码
- 索引屏蔽范围
原生 NumPy 索引:
使用索引掩码进行掩码:
索引屏蔽范围:
来自应用程序的示例
假设我们有一个图,表示为相邻节点的 NumPy 数组列表。
我感兴趣的函数只需要返回节点的非彩色邻居:
python - 如何使用较低的暗淡数组作为掩码创建一个 numpy 掩码数组?
认为
我想
或同等学历。
意思是,我想用 访问a
,mask
wheremask
是较低维度的,并有自动广播。我想np.ma.array
在mask=
参数的构造函数中使用它。
python - 查找在 Numpy 中被屏蔽的位置
我想在蒙面数组中获得位置。像这样
wt 和 chl 形状相同。我想根据 chl 的值和属性(是否屏蔽)给 wt 值。
有谁知道我应该怎么做?
先感谢您。
netcat - 使用 masked_array 时如何从我的降水数据中保持相同的单位?
我正在尝试使用一个nc
文件创建降水图,类似于我在此处找到的 NWS 示例。
不过,就我而言,我的降水数据已经在mm
. 如何保持相同的单位?我确实阅读了以下内容,
创建一个
numpy.ma.MaskedArray
附加单位。这是一个薄包装器numpy.ma.masked_array()
,可确保单元正确附加到结果(否则单元会默默丢失)。单位取自 data_units 参数,或者如果是None
,则使用数据上的单位。
我为我的文件遵循了给定的参数(masked_array(data, data_units=None, **kwargs)
),但是
- kwargs 没有定义,并且
- 当我不包括 kwargs 时,我得到
“AttributeError:‘MaskedArray’对象没有属性‘units’”。
我是初学者,所以请温柔。感谢您的指导!这是我的代码...
python - 为什么 np.ma.array 采用倒置掩码?
我有一些数组
和一些面具
并且可以做到
然而,
相当于
和
相当于
这对我来说似乎违反直觉。
希望 numpy 对这种设计选择做出解释。
python - ValueError 无法广播从形状 (1) 到形状 () 的掩码
有很多与ValueError
s 相关的问题,其中不同形状的输入数组无法在 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 已停产。但它是必要的[插入来自遗留开发环境的原因]。
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.
python - 将 += 与 numpy.array 和 numpy.ma.array 一起使用的奇怪行为
谁能向我解释以下结果?我知道这不像通常会执行此操作,但我发现这个结果很奇怪。
我预计c
不会改变,但我想这里有一些与内存中的对象相关的事情。此外,+=
保留原始对象,同时=
创建+
一个新的d
.
我只是不太明白添加到c
.
python - numpy 2d:如何仅获取第二列中允许的值的第一列中最大元素的索引
帮助找到解决问题的高性能方法:我在神经网络(answers_weight)之后有一个结果,一个答案类别(same len)和当前请求的允许类别:
我需要知道最大元素的索引(在answers_weight数组中),但跳过不允许的类别(2,3)。
最后,索引必须= 2(“3.0”,因为“3.8”必须跳过,因为类别不允许)