【问题标题】:Calculate mean for lists计算列表的平均值
【发布时间】:2018-08-24 13:23:33
【问题描述】:

我想计算向量列表的平均值。但是收到错误消息

ValueError                                Traceback (most recent call last)
<ipython-input-1293-04753fc36464> in <module>()
     13         else:
     14             NOT_FOUNT.append(j)
---> 15     Q_VEC.append(np.mean(DOC, axis=0))
     16     QUERY.append(WORD)
     17     #print(WORD, Q_VEC)

ValueError: setting an array element with a sequence.

我的代码:

Q_VEC=[]
QUERY=[]
NOT_FOUNT=[]
for i in W_LIST:
    DOC=[]
    WORD=[]
    for j in i:
        if j in list(D_FINAL.keys()):
            DOC.append(D_FINAL[j])   #D_FINAL[j] is an array
            WORD.append(j)
        else:
            NOT_FOUNT.append(j)
    Q_VEC.append(np.mean(DOC, axis=0))
    QUERY.append(WORD)

数据:

 W_LIST

 [['professional', 'training', None, None, 
None, None, None, None, None, None],
['undergraduate', 'management', None, None, 
None, None, None, None, None, None],
['professional', 'management', None, None, 
None, None, None, None, None, None]]

D_FINAL

{'professional': array([ -1.5453218 ,  
-2.9101162 ,  -1.7782371 ,  -0.7723548]),
'undergraduate': array([-5.044174  , 
-5.768703  ,  0.23328705,  1.6166878]),
'management': array([  0.9067916 ,  
-0.37680042,   2.2666857 ,  -1.3643779]),
'training': array([ -4343.5654  ,    
166.61334 ,  -4708.429   ,  11363.863])}

我想根据它们在 D_FINAL 中的向量值计算 W_LIST 的平均值。

“专业培训”(将保存到'QUERY')向量值将是

[(-1.5453218)+(-4343.5654)/2,  (-2.9101162)+ 
(166.61334 )/2, (-1.7782371)+(-4708.429)/2, 
(-0.7723548)+(11363.863)/2]

平均向量将被保存到'Q_VEC'

谢谢!

【问题讨论】:

  • 在询问产生异常的代码时,您应该始终在问题中包含完整的 Traceback。复制 Traceback 并将其粘贴到问题中,然后将其格式化为代码(选择它并键入 ctrl-k)
  • 我已经添加了,谢谢
  • 我无法使用您的示例数据/代码重现异常。当您执行以下操作时会发生该错误/异常:a = np.arange(5); a[0] = [1,2,3]Catch the error 并检查/打印除套件中的相关数据。或者只是在违规行之前打印数据。这将为您提供一个开始的地方。
  • 您使用的是哪个版本的 Numpy?我假设np 是 Numpy。我正在使用 1.14.3。也许尝试获取最新版本?
  • 试试这个:Q_VEC.append(np.mean(np.array(DOC), axis=0))。也许在您的 numpy 版本中使用 numpy 数组列表是这个错误背后的原因。

标签: python numpy dictionary


【解决方案1】:

我发现字典中的元素长度不同,修复后问题解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    相关资源
    最近更新 更多