假设我有一个标准的2dnumpy数组,我们称之为my2darray with values。在这个数组中有两个主要部分。假设对于每一列,都有一个分隔“场景1”和“场景2”的特定行。如何创建表示my2darray顶部和底部的2个掩码数组。例如,我对计算上半部分和下半部分的平均值感兴趣。一个想法是拥有一个与my2darray形状相同的面具,但这看起来像是在浪费内存。有更好的办法吗?假设我有一个向量,其中长度等于my2darray中的行数(在本例中为6),即
myvector=np.array([9, 15, 5,7,11,11])
我使用的是Python2.6和Numpy1.5.0
使用^{} ,我们可以以矢量化的方式创建这样的
2D
掩码。其余的工作都是关于沿着第一个轴的sum-reduction
,我们可以从np.einsum
获得帮助。因此,我们将有一个这样的实现-样本运行以验证结果-
另一种可能更快的方法是计算上掩码的和,存储它,然后从中减去沿
2D
输入数组整个长度的第一个轴的和。这可以用来计算下半部分的平均值。因此,在我们存储N
并计算mask
之后,我们将-相关问题 更多 >
编程相关推荐