运行 2018 年 pycharm 的 github 生长自组织映射实施失败

Running a github implementation of Growing Self-Organizing Map is failed in pycharm 2018

我从GitHub那里得到了一些生长自组织映射(GSOM)的代码 (了解 GSOM 机制所需的所有信息已在实施文档中描述)。

我尝试 运行 在 PyCharm 版本 2018.1.4 中使用 python 3.6 作为项目解释器,但我遇到了这个错误:

ValueError: too many values to unpack (expected 2)

以上错误与 GSOM class 的构造函数有关,具体在以下循环中:

        for fn,t in dataset:
            arr = scipy.array(t)
            self.data.append([fn,arr])

我知道这个错误是循环中的常见错误,我不得不说我尝试了所有关于这个错误的堆栈溢出解决方案,例如我使用了 iteritems() 但在那之后我遇到了以下错误:

AttributeError: 'numpy.ndarray' object has no attribute 'iteritems'

我为使用此实现编写的代码如下:

from gsom import GSOM
import numpy as np
dataset = np.array([
          [1., 0., 0.],
          [1., 0., 1.],
          [0., 0., 0.5],
          [0.125, 0.529, 1.0],
          [0.33, 0.4, 0.67],
          [0.6, 0.5, 1.0],
          [0., 1., 0.],
          [1., 0., 0.],
          [0., 1., 1.],
          [1., 0., 1.],
          [1., 1., 0.],
          [1., 1., 1.],
          [.33, .33, .33],
          [.5, .5, .5],
          [.66, .66, .66]])
SF = 0.5
Test = GSOM(dataset, SF)

顺便说一句,我是一名普通的 python 程序员,我将使用此实现作为硕士论文的主要部分,以使用二维网格可视化高维数据。

我上面使用的数据集是 3 维的(具有三个属性),是一个了解 GSOM 实现性能的简单示例。

不得不提的是,我将在论文中使用的原始数据集有 20 多个属性。

经过 4 小时的完整搜索解决了这个错误!!我发现我必须使用以下代码:

for fn, t in np.ndenumerate(dataset):
    arr = scipy.array(t)
    self.data.append([fn, arr])

ndenumerate() 是 numpy 的关键函数,以正确的方式在 numpy ndarray 中循环。

谢谢我! :)