You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Numpy实现20x20平面内随机4x4正方形区域的坐标对应个体采样

实现方案

完整可运行代码如下:

import numpy as np
from numpy.random import default_rng

rng = default_rng()
inds = rng.choice(50, size=50, replace=False) # 个体ID标签
locs = np.random.randint(0, 20, size=(50, 2)) # 对应的20x20平面坐标,坐标取值范围0<=x<20、0<=y<20

# 1. 随机生成4x4正方形的边界:确保正方形完全落在20x20平面内
square_size = 4
# x轴起始值取值范围0~16,确保x_max = x_min +4 <=20
x_min = rng.integers(0, 20 - square_size + 1)
# y轴起始值同理
y_min = rng.integers(0, 20 - square_size + 1)
x_max = x_min + square_size
y_max = y_min + square_size

# 2. 筛选落入正方形内的个体
mask = (locs[:,0] >= x_min) & (locs[:,0] < x_max) & (locs[:,1] >= y_min) & (locs[:,1] < y_max)
selected_inds = inds[mask]

# 可选择存储正方形位置和筛选结果,方便后续验证
result = {
    'square_range': {'x': [x_min, x_max], 'y': [y_min, y_max]},
    'selected_individuals': selected_inds
}

逻辑说明

  • 正方形边界生成逻辑:20x20平面的坐标范围是[0,20)的左闭右开区间,4x4大小的正方形的最小x/y坐标最多只能取到16,加4后刚好到20,不会超出平面范围
  • 筛选逻辑:用布尔掩码同时判断个体的x、y坐标是否都落在正方形的区间内,直接索引ID数组即可得到符合要求的个体
  • 如果需要多次随机采样正方形筛选,把上面的边界生成和筛选逻辑封装成函数循环调用即可

内容的提问来源于stack exchange,提问作者zach

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:15:04