gpt4 book ai didi

python - 如何获得均匀分布的数组的位置坐标(n×2)?

转载 作者:行者123 更新时间:2023-11-30 22:52:42 24 4
gpt4 key购买 nike

我正在尝试使用 ElementArrayStim 制作线元素数组(23×23 网格)来自PsychoPy。

对于线元素位置的 xys 参数,我试图以统一的方式(23×23 网格)定位线元素。

我尝试通过执行以下操作来获取元素的位置:

nx, ny = (23, 23)
xaxis = np.linspace(-220, 220, nx)
yaxis = np.linspace(-220, 220, ny)

yx = np.meshgrid(xaxis, yaxis)

我收到的输出似乎是 2 个独立的数组(我假设为 x 轴坐标和 y 轴坐标),但它们似乎是按每行列出的。

但是,PsychoPy 只接受 `xys 参数的 n×2 输入 - 我不确定如何改变输出的形状,使其采用 n×2 的形式。

此外,如果我使用的方法不正确/效率低下,那么在 n×2 形状中实现 xys 位置元素的最佳方法是什么?

  • n×2 是指两列,23 × 23 = 529 行。列将分别代表 x 和 y 坐标,529 行将代表每个元素。

最佳答案

您已经非常接近了,只需要从 xaxisyaxis 创建一个 3D 坐标数组,然后 reshape 该 3D 数组以获得 529 行 × 2 列的 2D根据需要排列:

In [21]: xy = np.dstack(np.meshgrid(xaxis, yaxis)).reshape(-1, 2)

In [22]: xy
Out[22]:
array([[-220, -220],
[-200, -220],
[-180, -220],
...,
[ 180, 220],
[ 200, 220],
[ 220, 220]])

In [23]: xy.shape
Out[23]: (529L, 2L)

或者,您也可以通过以下方法获得相同的结果:

xy = np.mgrid[-220:240:20, -220:240:20].T.reshape(-1, 2)

关于python - 如何获得均匀分布的数组的位置坐标(n×2)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38435289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com