python - 合并具有不同长度的掩码数组的二维列表

标签 python list numpy merge masked-array

我有一个非常大的掩码数组列表,我想将它们组合在一起,但数组的长度不同。 为了简单起见,这就是我想要做的,我想获得 C:

A=[[--,--,--,...,--]
   [1,2,3,...,--,--],
   ...
B=[[--,--,--,...,--],
   [4,5,6,...,--,--],
   ...
C=A+B
C=[[--,--,--,...,--,--,--,--,...,--],
   [1,2,3,...,--,--,4,5,6,...,--,--],
   ...
len(A)= 81
len(B)= 81
len(A[0])=2700
len(B[0])= 5000

len(C) = 81
len(C[0])= 7700

所以我基本上只是将两个列表放在一起。 实际上,我的数组 A 看起来像这样(B 类似):

masked_array(
  data=[[--, --, --, ..., --, --, --],
    [--, --, --, ..., --, --, --],
    [--, --, --, ..., --, --, --],
    ...,
    [-3.6872851848602295, -3.732004165649414, -3.7555367946624756,
     ..., -3.8215177059173584, -3.7747914791107178,
     -3.819281816482544],
    [-3.819749116897583, -3.824702739715576, -3.804812431335449, ...,
     -3.863957643508911, -3.840423345565796, -3.8660500049591064],
    [-3.6894078254699707, -3.7181897163391113, -3.7022457122802734,
     ..., -3.8167803287506104, -3.7095720767974854,
     -3.8254523277282715]],
  mask=[[ True,  True,  True, ...,  True,  True,  True],
    [ True,  True,  True, ...,  True,  True,  True],
    [ True,  True,  True, ...,  True,  True,  True],
    ...,
    [False, False, False, ..., False, False, False],
    [False, False, False, ..., False, False, False],
    [False, False, False, ..., False, False, False]],
  fill_value=9.96921e+36,
  dtype=float32)

问题是大多数命令都不起作用,因为它是一个屏蔽数组或因为它具有不同的大小。我已经检查了这些问题:

感谢任何帮助!

最佳答案

一种选择是分别对数据和掩码使用常用的 numpy 操作:

c_data = np.hstack((a.data, b.data))
c_mask = np.hstack((a.mask, b.mask))
c = ma.array(c_data, mask=c_mask)

关于python - 合并具有不同长度的掩码数组的二维列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50304457/

相关文章:

python - 如何在python中使用np.savetxt使文件名成为变量?

python - PyQt:如何从选择查询中获取行值

python - 如何在 python 中规范化 iso-8859-15 转换的 unicode 编码?

python - 插件是否应该添加新的实例方法 monkey-patch 或子类/mixin 并替换父类?

java - List<String[]> float 读取 csv

python - 仅当元组中的数字相等时,如何根据字母顺序排列此列表中的元组?

python - 基于二维数组中的一列对数据进行分箱,并使用 cython 估计每个箱中的平均值

python - 如何取消连接 pandas 数据框?

python - 从 for 循环创建 json 对象数组

python - 对numpy数组中的每个第n个条目进行二次采样