Рассчитать среднее для списков - PullRequest
0 голосов
/ 24 августа 2018

Я хочу рассчитать среднее для списков векторов.Однако получено сообщение об ошибке

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])}

Я хочу рассчитать среднее значение W_LIST, основываясь на их векторном значении вD_FINAL.

Значение вектора "профессиональной подготовки" (будет сохранено в 'QUERY') будет

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

Средний вектор будет сохранен в 'Q_VEC'

Спасибо!

1 Ответ

0 голосов
/ 29 августа 2018

Я обнаружил, что элементы в словаре имеют разную длину, после исправления проблема была решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...