【问题标题】:Unsupported Operand Types for /: 'str' and 'float'/ 不支持的操作数类型:“str”和“float”
【发布时间】:2013-05-08 00:21:33
【问题描述】:

我在理解此错误消息时遇到了一些麻烦...

我最近一直在对我的一些数据使用 sklearn 机器学习工具。我尝试使用以下代码为我的数据输出轮廓系数:

distmat = []
for row in distmat_csv:
    distmat.append(row[1:])
in_distmat.close()

distmat_array = np.array(distmat, dtype=object)
print distmat_array


out_metricsfile = open('Influenza A All Subtypes Human Strains %s in %s Clustering Metrics.txt' % (name1, name2), 'w+') 
out_metricsfile.write('%s in %s Clustering Metrics \n' % (name1, name2))
out_metricsfile.write('Estimated number of clusters: %d \n' % n_clusters)
out_metricsfile.write("Silhouette Coefficient: %0.3f \n"
      % metrics.silhouette_score(distmat_array, labels, metric='precomputed'))
out_metricsfile.close()

distmat 数组只是我从 CSV 文件中读取的一系列数字。它看起来像这样:

[[0.000000 0.614841 0.613074 ..., 0.007067 0.007067 0.010601]
 [0.614841 0.000000 0.012367 ..., 0.616608 0.613074 0.611307]
 [0.613074 0.012367 0.000000 ..., 0.614841 0.611307 0.609541]
 ..., 
 [0.007067 0.616608 0.614841 ..., 0.000000 0.010601 0.014134]
 [0.007067 0.613074 0.611307 ..., 0.010601 0.000000 0.010601]
 [0.010601 0.611307 0.609541 ..., 0.014134 0.010601 0.000000]]

返回的错误信息如下:

Traceback (most recent call last):
  File "script9-perform-affinity-propagation-and-display.py", line 92, in <module>
    % metrics.silhouette_score(distmat_array, labels, metric='precomputed'))
  File "/Library/Python/2.7/site-packages/scikit_learn-0.13.1-py2.7-macosx-10.8-intel.egg/sklearn/metrics/cluster/unsupervised.py", line 84, in silhouette_score
    return np.mean(silhouette_samples(X, labels, metric=metric, **kwds))
  File "/Library/Python/2.7/site-packages/scikit_learn-0.13.1-py2.7-macosx-10.8-intel.egg/sklearn/metrics/cluster/unsupervised.py", line 146, in silhouette_samples
    for i in range(n)])
  File "/Library/Python/2.7/site-packages/scikit_learn-0.13.1-py2.7-macosx-10.8-intel.egg/sklearn/metrics/cluster/unsupervised.py", line 176, in _intra_cluster_distance
    a = np.mean(distances_row[mask])
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/fromnumeric.py", line 2374, in mean
    return mean(axis, dtype, out)
TypeError: unsupported operand type(s) for /: 'str' and 'float'

我一直无法理解错误消息。我怎么知道我哪里出错了?如果有人足够好心,我哪里错了?

【问题讨论】:

    标签: python-2.7 bioinformatics scikit-learn


    【解决方案1】:

    好的...所以我实际上找到了问题所在。通过将“dtype”从“object”改为“float”,问题就解决了……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      • 1970-01-01
      相关资源
      最近更新 更多