我想要一个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]]
顺序并不重要。
发布于 2018-03-26 15:19:55
你可以用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
这一切都可以用一行来完成:
xy = np.mgrid[-5:5.1:0.5, -5:5.1:0.5].reshape(2,-1).T
发布于 2018-03-26 15:34:23
可以使用
np.meshgrid
:
import numpy as np
x = np.arange(-5, 5.1, 0.5)
y = np.arange(-5, 5.1, 0.5)
X,Y = np.meshgrid(x,y)
您可以将其转换为所需的输出。
XY=np.array([X.flatten(),Y.flatten()]).T
print XY
array([[-5. , -5. ],
[-4.5, -5. ],
[-4. , -5. ],
[-3.5, -5. ],
[-3. , -5. ],
[-2.5, -5. ],
....
[ 3. , 5. ],
[ 3.5, 5. ],
[ 4. , 5. ],
[ 4.5, 5. ],
[ 5. , 5. ]])
https://stackoverflow.com/questions/-100004307
复制相似问题