【问题标题】:Unable to add matrices to tuples无法将矩阵添加到元组
【发布时间】:2013-11-19 09:17:20
【问题描述】:

python 和 numpy 的新手,搜索并尝试了所有可能的解决方案,但没有得到结果 我有一个返回 2 个矩阵的函数。我想创建一个数组或矩阵来保存我的函数返回的每个矩阵。我做了很多不同的版本,这是最接近的。我习惯了java而不是python。如果我执行以下操作:centroidsm[0]clustersm[0],我无法获取每个单独的数组。

这是我的代码:

centroidsm = []
centroidsm.append([])
clustersm = []
clustersm.append([])
for k in range(2,20):
    centroids, clusters = kMeans(train, k)
    centroidsm[k].append(centroids)
    clustersm[k].append(clusters)

【问题讨论】:

    标签: python arrays numpy matrix tuples


    【解决方案1】:

    首先,我不知道您为什么要将一个空数组附加到centroidsm。您应该取消这些行。

    其次,如果 centroidsm 应该是一个质心矩阵数组,您只需在 for 循环内部调用 centroidism.append(centroids)centroidsm[k].append 尝试附加到索引 k 处的数组 - 一个不存在的数组)。

    centroidsm = []
    clustersm = []
    for k in range(2,20):
        centroids, clusters = kMeans(train, k)
        centroidsm.append(centroids)
        clustersm.append(clusters)
    

    【讨论】:

    • 我不断从错误中获取索引 IndexError Traceback (最近一次调用最后一次) in () 2 for j in range(2,20): 3 centroids, clusters = kMeans(train, j) ----> 4 centroidsm[j].append(centroids) 5 clustersm[j].append(clusters) IndexError: list index out of range
    • 我想要 k 的原因是因为我希望能够单独访问每个质心矩阵。如果我只是做 centroidsm.append(centroids),我只能调用所有的质心数组而不是特定的数组
    • 构建数组后,您可以使用centroidism[k] 访问特定矩阵。
    • 当然你会得到 IndexError: Your centroidsm list has length 1 when the for loop start,然后你尝试访问它的第三个元素(index=2)。
    • 完美!以前没有用,但你的建议奏效了..谢谢!在我只能访问 centroidm[0] 之前,它会在其中包含所有 htem。谢谢!!!我只需要更多地围绕python。我就是这么习惯java
    猜你喜欢
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    相关资源
    最近更新 更多