我有一个 2d numpy 数组 (2 x 2) 元素,我想从中创建另一个 2D numpy 数组,这样:
二维数组:
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 的方法。
您可以使用 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]])
我是一名优秀的程序员,十分优秀!