小编Tho*_*ubb的帖子

Python numpy 掩码数组初始化

我在工作中一直使用掩码数组,但我遇到的一个问题是掩码数组的初始化有点笨拙。具体来说,ma.zeros() 和 ma.empty() 返回掩码数组,其掩码与数组维度不匹配。我想要这个的原因是,如果我不分配给数组的特定元素,它会默认被屏蔽。

In [4]: A=ma.zeros((3,))
...
masked_array(data = [ 0.  0.  0.],
             mask = False,
       fill_value = 1e+20)
Run Code Online (Sandbox Code Playgroud)

我随后可以分配掩码:

In [6]: A.mask=ones((3,))
...
masked_array(data = [-- -- --],
             mask = [ True  True  True],
       fill_value = 1e+20)
Run Code Online (Sandbox Code Playgroud)

但为什么我必须使用两行来初始化和数组呢?或者,我可以忽略 ma.zeros() 功能并在一行中指定掩码和数据:

In [8]: A=ma.masked_array(zeros((3,)),mask=ones((3,)))
...
masked_array(data = [-- -- --],
             mask = [ True  True  True],
       fill_value = 1e+20)
Run Code Online (Sandbox Code Playgroud)

但我认为这也很笨拙。我已经浏览了numpy.ma文档,但找不到处理此问题的巧妙方法。我错过了一些明显的事情吗?

python arrays numpy initialization

6
推荐指数
1
解决办法
5294
查看次数

标签 统计

arrays ×1

initialization ×1

numpy ×1

python ×1