随机2D坐标生成

时间:2019-10-31 06:25:14

标签: python numpy matplotlib

我需要生成2D随机坐标并找到距一个中心位置的距离。

import numpy as np
import matplotlib.pyplot as plt

coords = np.random.random_integers(0,50,10)

print(coords)

2 个答案:

答案 0 :(得分:1)

要采样坐标,您还可以分别采样x和y坐标:

import numpy as np
import matplotlib.pyplot as plt

x = np.random.randint(0, 50, 10)
y = np.random.randint(0, 50, 10)

plt.scatter(x, y)
plt.show()

上面的输出应该是带有10个采样点的散点图。接下来,可以确定所有点到定义的中心点(x0, y0)的距离,如下所示:

x0, y0 = 25, 25 
d = np.sqrt((x0 - x)**2 + (y0 - y)**2)
print(d)

d包含到中心点的距离,d[i](x[i], y[i])(x0, y0)的距离。

答案 1 :(得分:0)

您的推理方式存在一些问题,此外,您的问题不是很清楚。

首先,您需要一个点的两个坐标。目前,您仅创建10个随机值。他们是x吗? ??是否只需要整数坐标?我假设由于您使用了不推荐使用的整数随机值生成器。在回答中,您要求与市中心的距离是多少?您是否需要每个点到该位置的距离?平均? 我试图以中心位置为随机点的质心来回答您的问题。

我产生了10分。

我用坐标xm和ym计算了质心。

在这种情况下,要计算质心,只需要计算x坐标和y坐标的平均值即可。

如果您要特定的位置,只需在xm和ym上加上数字即可。

创建列表“ d1”后,可以在其中存储每个点到质心的距离。 “ for循环”中的公式就是欧几里得距离。

import numpy as np
import matplotlib.pyplot as plt

num_points=10
coords_x=np.random.randint(0,50,num_points)
coords_y=np.random.randint(0,50,num_points)

xm=np.average(coords_x)
ym=np.average(coords_y)

d1=((coords_x-xm)**2+(coords_y-ym)**2)**0.5

print(d1)