我想要一个2d NumPy数组(x,y)的列表,其中每个x分别位于{-5,-4.5,-4,-3.5,...,3.5、4、4.5、5}中,并且与y相同。
我可以
x = np.arange(-5, 5.1, 0.5)
y = np.arange(-5, 5.1, 0.5)
然后遍历所有可能的对,但是我敢肯定有更好的方法...
我想要一些看起来像这样的东西:
[[-5, -5],
[-5, -4.5],
[-5, -4],
...
[5, 5]]
但是顺序并不重要。
您可以使用np.mgrid
它,它通常比np.meshgrid
一步更方便,因为它一步创建数组:
import numpy as np
X,Y = np.mgrid[-5:5.1:0.5, -5:5.1:0.5]
要获得类似linspace的功能,请0.5
用一个复数代替步(即),该复数的大小指定了序列中所需的点数。使用此语法,将与上述相同的数组指定为:
X, Y = np.mgrid[-5:5:21j, -5:5:21j]
然后,您可以按以下方式创建对:
xy = np.vstack((X.flatten(), Y.flatten())).T
正如@ali_m建议的那样,所有这些都可以在一行中完成:
xy = np.mgrid[-5:5.1:0.5, -5:5.1:0.5].reshape(2,-1).T
祝你好运!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句