首页 > 解决方案 > 如何在将值四等分的同时将矩阵的维度加倍?

问题描述

我想实现这一点:

a = np.array ([[1, 2],
               [2, 1]])

b = np.array ([[0.25, 0.25, 0.5, 0.5],
               [0.25, 0.25, 0.5, 0.5],
               [0.5, 0.5, 0.25, 0.25],
               [0.5, 0.5, 0.25, 0.25])

从数学上讲,它们不是相同的矩阵。但我想你明白我想要做什么。我想将矩阵的维度加倍。但因此我想保留来自初始矩阵 a 的信息,方法是为四个相应的单元格取四分之一。

some1 知道如何在 numpy 中有效地做到这一点吗?

标签: pythonnumpydimension

解决方案


您可以在两个轴上使用两个重复函数,然后进行简单的除法:

In [8]: np.repeat(np.repeat(a, 2, 1), 2, 0)/4
Out[8]: 
array([[0.25, 0.25, 0.5 , 0.5 ],
       [0.25, 0.25, 0.5 , 0.5 ],
       [0.5 , 0.5 , 0.25, 0.25],
       [0.5 , 0.5 , 0.25, 0.25]])

推荐阅读