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

如何在遍历两个范围时固定其一,计算theta与X的hypothesis值?

遍历实现方案

首先明确你要实现的是特征维度优先的遍历逻辑:先遍历theta的每个特征分量,再遍历所有样本计算该特征对应的乘积项,最后累加到对应样本的hypothesis结果中。

基础循环实现

  • 先确认数组维度:theta为长度等于特征数的一维数组,X为「样本数×特征数」的二维数组,hypothesis为长度等于样本数的一维数组,初始值全为0。
  • 外层循环遍历特征维度,内层循环遍历所有样本,代码如下:
# 初始化hypothesis
hypothesis = [0] * len(X)
# 外层遍历theta的每个特征分量j
for j in range(len(theta)):
    # 内层遍历所有样本i
    for i in range(len(X)):
        hypothesis[i] += theta[j] * X[i][j]

原代码错误说明

你之前写的嵌套循环存在两处核心问题:

  1. 循环范围使用range(i)、range(j),调用了未初始化的循环变量作为范围参数,运行会直接报错
  2. 索引对应关系错误,theta[i] * X[j][i]的取值逻辑和你要的遍历顺序不匹配

简化实现(可选)

如果使用numpy做数值计算,可以直接调用点积接口实现,无需手写循环:

import numpy as np
hypothesis = np.dot(X, theta)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:54:03