我需要生成2D
随机坐标并找到距一个中心位置的距离。
import numpy as np
import matplotlib.pyplot as plt
coords = np.random.random_integers(0,50,10)
print(coords)
答案 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)