将numpy 2D数组划分为更精细的分辨率

时间:2015-09-08 00:31:26

标签: python arrays numpy

我有一个2d numpy数组(2 x 2)元素,我想用它创建另一个2D numpy数组,这样:

2D数组:

import numpy as np
np.random.rand(2,2)
  
  array([[10.0,8.0],
              [6.0,4.0]])
  

我希望从中得到一个4x4数组,以便对应于较粗数组的特定单元格的更精细分辨率数组的所有值与更粗略的数组相同:

  
  array([[10.0,10.0,8.0,8.0],
            [10.0,10.0,8.0,8.0]
            [6.0,6.0,4.0,4.0]
            [6.0,6.0,4.0,4.0]])
  

我可以使用for循环来做到这一点,但是我们真的想知道是否存在更多的pythonic方式。

1 个答案:

答案 0 :(得分:4)

您可以使用repeat

>>> a = np.random.rand(2,2)
>>> a
array([[ 0.66172561,  0.09262421],
       [ 0.40578266,  0.84510431]])
>>> a.repeat(2, 0).repeat(2, 1)
array([[ 0.66172561,  0.66172561,  0.09262421,  0.09262421],
       [ 0.66172561,  0.66172561,  0.09262421,  0.09262421],
       [ 0.40578266,  0.40578266,  0.84510431,  0.84510431],
       [ 0.40578266,  0.40578266,  0.84510431,  0.84510431]])