Python中如何遍历二维NumPy数组并逐个存储计算得到的点坐标
错误原因
- 初始化的
x_points为100行2列的数组,合法行索引范围是0~99,使用range(101)遍历会触发索引越界 x_points[i:,]的切片写法会覆盖从第i行到末尾的所有行,无法实现逐个存入单个点的需求- 循环中错误将整个
x_points数组赋值给x,后续迭代会使用全数组运算而非上一步生成的单个点
正确实现
x = np.dot(weights, corners) x_points = np.zeros([100, 2]) for i in range(100): # 计算当前迭代得到的点 current_point = (x + corners[np.random.randint(3)]) / 2 # 仅给第i行赋值,存入当前点 x_points[i] = current_point # 更新x为当前点,用于下一轮计算 x = current_point
如果你需要把初始计算得到的x也存入数组,可以调整为如下逻辑:
x = np.dot(weights, corners) x_points = np.zeros([101, 2]) # 首行存入初始点 x_points[0] = x for i in range(1, 101): current_point = (x + corners[np.random.randint(3)]) / 2 x_points[i] = current_point x = current_point
内容的提问来源于stack exchange,提问作者N.A.
相关产品推荐
相关产品推荐

