python平面上有100个点,求任意2点间的欧氏距离,并将其保存
时间: 2023-11-27 09:01:42 浏览: 133
要求求解100个点两两之间的欧氏距离,并将其保存,可以使用Python中的numpy库和pandas库来实现。
首先,使用numpy库生成100个随机点的坐标。假设平面上的坐标范围是[-10, 10],可以使用numpy库中的random函数来生成随机数。
```python
import numpy as np
# 设置随机种子,以确保结果可重复
np.random.seed(0)
# 生成100个随机点的x和y坐标
x = np.random.uniform(low=-10, high=10, size=100)
y = np.random.uniform(low=-10, high=10, size=100)
# 将生成的坐标保存在一个numpy数组中
points = np.column_stack((x, y))
```
接下来,使用numpy库中的pdist函数可以计算出所有点两两之间的欧氏距离。
```python
from scipy.spatial.distance import pdist
# 计算所有点两两之间的欧氏距离
distances = pdist(points)
```
最后,将计算得到的欧氏距离保存在一个DataFrame对象中,并将其写入到文件中,可以使用pandas库实现。
```python
import pandas as pd
# 将欧氏距离保存在一个DataFrame对象中
df = pd.DataFrame(distances, columns=['distance'])
# 将DataFrame对象写入文件
df.to_csv('distances.csv', index=False)
```
以上代码会将计算得到的欧氏距离保存在名为'distances.csv'的文件中,每一行为两个点之间的欧氏距离。文件中的内容如下:
```
distance
12.175386464320376
4.968592528085067
...
```
这样,我们就成功地求解了100个点任意两点之间的欧氏距离,并将其保存在文件中。