繁体   English   中英

Python numpy:重塑列表到重复的2D数组

[英]Python numpy: reshape list into repeating 2D array

我是python的新手,我有一个关于numpy.reshape的问题。 我目前有2个这样的值列表:

x = [0,1,2,3]
y = [4,5,6,7]

我希望它们位于单独的2D数组中,其中每个项目都按原始列表的长度重复,如下所示:

xx = [[0,0,0,0]
     [1,1,1,1]
     [2,2,2,2]
     [3,3,3,3]]

yy = [[4,5,6,7]
      [4,5,6,7]
      [4,5,6,7]
      [4,5,6,7]]

有没有办法用numpy.reshape做到这一点,还是有更好的方法我可以使用? 我非常感谢详细的解释。 谢谢!

numpy.meshgrid会为你做这件事。

NB从您请求的输出,看起来您想要ij索引,而不是默认的xy

from numpy import meshgrid

x = [0,1,2,3]
y = [4,5,6,7]
xx,yy=meshgrid(x,y,indexing='ij')

print xx
>>> [[0 0 0 0]
     [1 1 1 1]
     [2 2 2 2]
     [3 3 3 3]]

print yy
>>> [[4 5 6 7]
     [4 5 6 7]
     [4 5 6 7]
     [4 5 6 7]]

作为参考,这里是xy索引

xx,yy=meshgrid(x,y,indexing='xy')

print xx
>>> [[0 1 2 3]
     [0 1 2 3]
     [0 1 2 3]
     [0 1 2 3]]

print yy
>>> [[4 4 4 4]
     [5 5 5 5]
     [6 6 6 6]
     [7 7 7 7]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM