python均匀采样
时间: 2023-10-14 15:05:39 浏览: 219
python 实现生成均匀分布的点
在Python中进行均匀采样的方法有多种。一种常见的方法是在一个正方形内进行采样,然后剔除不在目标形状内的点。另一种方法是按照极坐标进行采样,先随机选择一个角度范围,然后在该范围内随机选择一个长度,得到目标形状内的点。
以下是一个使用第一种方法进行均匀采样的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
import random
# 设置采样点数量
num_points = 10000
# 正方形边长
side_length = 2
# 生成采样点
points = []
for _ in range(num_points):
x = random.uniform(-side_length/2, side_length/2)
y = random.uniform(-side_length/2, side_length/2)
if x**2 + y**2 <= (side_length/2)**2: # 剔除不在圆内的点
points.append((x, y))
# 可视化结果
plt.scatter(*zip(*points), s=1.5, color=(0., 0.5, 0.))
plt.xlim(-side_length/2, side_length/2)
plt.ylim(-side_length/2, side_length/2)
plt.gca().set_aspect('equal', adjustable='box')
plt.show()
```
这段代码将在一个正方形内生成10000个均匀采样的点,并剔除不在半径为1的圆内的点。最后将采样点可视化显示出来。
另外,还可以使用第二种方法进行均匀采样,即按照极坐标进行采样。以下是一个使用第二种方法的示例代码:
```python
import numpy as np
import math
import matplotlib.pyplot as plt
import random
# 设置采样点数量
num_points = 10000
# 生成采样点
points = []
for _ in range(num_points):
theta = random.uniform(0, 2
阅读全文