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

生成删失回归模拟数据时出现Length of values与index长度不匹配错误

报错根因

  • np.where用法错误
    你仅传入了条件参数y_star > .5,未传入条件成立/不成立时的对应返回值,此时np.where的返回结果是满足条件的行索引组成的单元素元组,整体长度为1,赋值给长度为10000的data['y']列时,因长度不匹配触发报错。
  • 函数调用语法错误
    gen_q2_data.head()的写法没有为函数添加执行括号,实际是尝试对函数对象本身调用head方法,而非对函数返回的DataFrame调用,即使第一个问题修复,该写法也会触发属性不存在的报错。

修复方案

删失回归的左删失阈值为0.5,因此np.where需要补充两个返回值:条件成立时返回实际值y_star,条件不成立时返回删失阈值0.5。同时修正函数调用语法,补充函数执行的括号。
修复后完整可运行代码如下:

import pandas as pd
import numpy as np

# 初始化随机数生成器,设置种子可复现结果
rng = np.random.default_rng(seed=2024)

def gen_q2_data(n=10000):
    data = pd.DataFrame()
    data['X'] = rng.uniform(-1.5, 1.5, n)
    data['U'] = rng.normal(0, np.sqrt(2), n)
    y_star = 0.5 + 2 * data['X'] - data['U']
    # 修正np.where用法,补充返回值
    data['y'] = np.where(y_star > 0.5, y_star, 0.5)
    # 可选:新增删失标记列,1代表该样本被删失,0代表观测值真实
    data['is_censored'] = np.where(y_star <= 0.5, 1, 0)
    return data

# 修正函数调用,先执行函数再取前5行
data_q2 = gen_q2_data().head()

内容的提问来源于stack exchange,提问作者M T K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:36:05