如何实现feature_names与对应true_coefs的一一对应打印?
解决方法
你的问题出在**true_coefs是二维数组**(外层包裹了一层列表/数组),直接zip会把feature_names的每个元素和整个内层数组配对,导致结果不符合预期;另外你需要把feature_names里的'x y'去掉空格转为'xy'来匹配目标格式。
调整后的代码示例
# 假设你的数据是numpy数组或普通列表,以下代码都适用 feature_names = ['x', 'y', 'x^2', 'x y', 'y^2'] true_coefs = [[1, 2, 3, 4, 5]] # 或numpy数组形式:np.array([[1,2,3,4,5]]) # 1. 取出二维数组内的一维系数序列 flat_coefs = true_coefs[0] # 2. 清理特征名称,去掉空格 clean_features = [name.replace(' ', '') for name in feature_names] # 3. 生成对应字典 coef_map = dict(zip(clean_features, flat_coefs)) # 4. 格式化为目标字符串格式 output = ', '.join([f"{k}:{v}" for k, v in coef_map.items()]) print(output)
代码说明
true_coefs[0]:将二维的系数数组扁平化,取出内部的一维序列,确保zip时每个特征名对应单个系数值。name.replace(' ', ''):把'x y'中的空格移除,转换成目标格式要求的'xy'。', '.join(...):遍历字典的键值对,拼接成你需要的key:value逗号分隔格式。
运行后输出结果:x:1, y:2, x^2:3, xy:4, y^2:5
内容的提问来源于stack exchange,提问作者gtmailster
相关产品推荐
相关产品推荐

