我有一个数组,其中的数据如下
a = [[1,2,3],[4,5,6],[7,8,9]]
我想把它改成
b = [[1,1,2,2,3,3],[1,1,2,2,3,3],[4,4,5,5,6,6],[4,4,5,5,6,6],[7,7,8,8,9,9],[7,7,8,8,9,9]]
我尝试使用numpy.resize()
函数,但在调整大小后,它给出了[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]
。我可以使用for循环将数字放在我需要的索引处,但我只是想知道是否有更简单的方法来做到这一点?
为了使任务可视化,下面是原始数组
这就是我想要的
2条答案
按热度按时间j91ykkif1#
我最初认为
np.tile
可以工作,但实际上您正在寻找的是两个不同轴上的两个np.repeat
。试试这个可运行的例子吧!
0yycz8jy2#
您可以将问题视为将每个1x1块的大小调整为2x2块。这可以简单地使用
numpy.kron(a, b)
来完成,numpy.kron(a, b)
对a
的每个元素--每个1x1块--进行操作,并根据b
对其进行“扩展”--因此它应该是一个2x2块。为较大的结构创建第二个操作数的有效方法是使用
np.ones
和相关函数。