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

使用kmapper时遇TypeError:tuple索引需为整数/切片而非字符串

问题解决:KeplerMapper可视化单纯复形图报错修复

错误原因

代码中graph = mapper.map(...)这一行的末尾多了一个逗号,导致graph被定义为元组类型,而mapper.visualize()需要接收的是mapper.map()返回的字典格式图数据。这就是报错TypeError: tuple indices must be integers or slices, not str的根源——代码试图用字符串索引去访问元组,自然会失败。

修正后的代码

import kmapper as km
from sklearn import cluster
import numpy as np

# Define the data points
data = np.asarray(
         [ [145.0,  17.0], [166.0,  10], [145,  38], [161,  49],
           [165,  24], [188,  41], [193,  18], [179,  52],
           [208,  21], [194,  51], [198,  31], [207,  41],
           [218,  55], [222,  26], [238,  27], [226,  41] ])
                   
mapper = km.KeplerMapper(verbose=1)

projected_data = mapper.fit_transform(data, projection=[0],
                                      distance_matrix="euclidean")

cover = km.Cover(n_cubes=10, perc_overlap=0.4)

# 移除末尾的逗号,让graph接收mapper.map返回的字典
graph = mapper.map(projected_data, data, cover=cover,
               clusterer=cluster.AgglomerativeClustering(n_clusters=2,
               linkage="single")
               )

mapper.visualize(graph, path_html="graph1.html")

关键修改说明

  • 移除mapper.map()语句末尾的逗号,确保graph变量存储的是mapper.map()返回的图结构字典,而非元组。
  • 修正后,mapper.visualize()可以正常访问graph["nodes"]等字典键值对,生成正确的HTML可视化文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:01:23