Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 放大numpy数组并均匀分布值_Python_Arrays_Numpy - Fatal编程技术网

Python 放大numpy数组并均匀分布值

Python 放大numpy数组并均匀分布值,python,arrays,numpy,Python,Arrays,Numpy,我有一个表示空间数据的二维numpy数组。我需要提高它的分辨率。我还需要在整个空间中均匀分布值。例如,值为 五, 将成为: 1.25 1.25 1.25 1.25 我看过imresize,但我认为插值选项对此不起作用。也许还有别的办法?如果可以的话,我希望避免迭代行和列。任何帮助都将不胜感激!谢谢大家! 只需除以块中由其高度和宽度定义的元素数,然后复制/扩展。要进行复制,我们可以使用np.repeat或np.lib.stride\u技巧 与- 使用- 样本运行- In [140]: a Out[

我有一个表示空间数据的二维numpy数组。我需要提高它的分辨率。我还需要在整个空间中均匀分布值。例如,值为

五,

将成为:

1.25 1.25

1.25 1.25


我看过imresize,但我认为插值选项对此不起作用。也许还有别的办法?如果可以的话,我希望避免迭代行和列。任何帮助都将不胜感激!谢谢大家!

只需除以块中由其高度和宽度定义的元素数,然后复制/扩展。要进行复制,我们可以使用
np.repeat
np.lib.stride\u技巧

与-

使用-

样本运行-

In [140]: a
Out[140]: 
array([[ 7,  6,  9],
       [ 6,  6, 10]])

In [141]: upscale_repeat(a, 2, 2)
Out[141]: 
array([[ 1.75,  1.75,  1.5 ,  1.5 ,  2.25,  2.25],
       [ 1.75,  1.75,  1.5 ,  1.5 ,  2.25,  2.25],
       [ 1.5 ,  1.5 ,  1.5 ,  1.5 ,  2.5 ,  2.5 ],
       [ 1.5 ,  1.5 ,  1.5 ,  1.5 ,  2.5 ,  2.5 ]])

In [142]: upscale_repeat(a, 2, 3)
Out[142]: 
array([[ 1.17,  1.17,  1.17,  1.  ,  1.  ,  1.  ,  1.5 ,  1.5 ,  1.5 ],
       [ 1.17,  1.17,  1.17,  1.  ,  1.  ,  1.  ,  1.5 ,  1.5 ,  1.5 ],
       [ 1.  ,  1.  ,  1.  ,  1.  ,  1.  ,  1.  ,  1.67,  1.67,  1.67],
       [ 1.  ,  1.  ,  1.  ,  1.  ,  1.  ,  1.  ,  1.67,  1.67,  1.67]])
def upscale_strided(a, h, w):
    return tile_array(a/float(h*w), h, w)
In [140]: a
Out[140]: 
array([[ 7,  6,  9],
       [ 6,  6, 10]])

In [141]: upscale_repeat(a, 2, 2)
Out[141]: 
array([[ 1.75,  1.75,  1.5 ,  1.5 ,  2.25,  2.25],
       [ 1.75,  1.75,  1.5 ,  1.5 ,  2.25,  2.25],
       [ 1.5 ,  1.5 ,  1.5 ,  1.5 ,  2.5 ,  2.5 ],
       [ 1.5 ,  1.5 ,  1.5 ,  1.5 ,  2.5 ,  2.5 ]])

In [142]: upscale_repeat(a, 2, 3)
Out[142]: 
array([[ 1.17,  1.17,  1.17,  1.  ,  1.  ,  1.  ,  1.5 ,  1.5 ,  1.5 ],
       [ 1.17,  1.17,  1.17,  1.  ,  1.  ,  1.  ,  1.5 ,  1.5 ,  1.5 ],
       [ 1.  ,  1.  ,  1.  ,  1.  ,  1.  ,  1.  ,  1.67,  1.67,  1.67],
       [ 1.  ,  1.  ,  1.  ,  1.  ,  1.  ,  1.  ,  1.67,  1.67,  1.67]])