У меня возникли некоторые проблемы с этим кодом, пытаясь в итоге получить внутренний продукт двух массивов с 1-D. Код интереса выглядит следующим образом:принимает значение «ValueError: установка элемента массива с последовательностью».
def find_percents(i):
percents=[]
median=1.5/(6+2*int(i/12))
b=2*median
m=b/(7+2*int(i/12))
for j in xrange (1,6+2*int(i/12)):
percents.append(float((b-m*j)))
percentlist=numpy.asarray(percents, dtype=float)
#print percentlist
total=sum(percentlist)
return total, percentlist
def playerlister(i):
players=[]
for i in xrange(i+1,i+6+2*int(i/12)):
position=sheet.cell(i,2)
points=sheet.cell(i,24)
if re.findall('RB', str(position.value)):
vbd=points.value-rbs[24]
players.append(vbd)
else:
pass
playerlist=numpy.asarray(players, dtype=float)
return playerlist
def others(i,percentlist,playerlist,total):
alternatives=[]
playerlist=playerlister(i)
percentlist=find_percents(i)
players=numpy.dot(playerlist,percentlist)
Я получаю следующее сообщение об ошибке в ответ на самом последнюю строку этого прикрепленного кода:
ValueError: setting an array element with a sequence.
В большинстве других примеров этой ошибки, у меня есть обнаружена ошибка из-за неправильных типов данных в массивах percentlist
и playerlist
, но мой тип должен быть типа float. Если это помогает вообще, я называю эти функции чуть позже в программе, например, так:
for i in xrange(1,30):
total, percentlist= find_percents(i)
playerlist= playerlister(i)
print type(playerlist[i])
draft_score= others(i,percentlist,playerlist,total)
Может кто-нибудь помочь мне понять, почему я устанавливаю элемент массива с последовательностью? Пожалуйста, дайте мне знать, если какая-либо дополнительная информация может быть полезна! Также для ясности playerlister
использует модуль xlrd
для извлечения данных из электронной таблицы, но данные являются численными, и тестирование показало, что оба списка имеют тип numpy.float64
.
Форма и содержание каждого из них в течение одной итерации является i
<type 'numpy.float64'>
(5,)
[ 73.7 -94.4 140.9 44.8 130.9]
(5,)
[ 0.42857143 0.35714286 0.28571429 0.21428571 0.14285714]