Я хотел бы знать, как сделать следующий код короче и/или более эффективным. Мог ли я (или я должен) избавиться от цикла for, используя функциональный метод, или есть метод, который я должен использовать из numpy?Как оптимизировать генерацию данных для вызова numpy
Код вычисляет ожидаемое значение массива из целых чисел.
vals = np.arange(self.n+1)
# array of probability of each value in vals
parr = np.ones(len(vals))
for i in range(len(vals)):
parr[i] *= self.prob(vals[i])
return np.dot(vals,parr)
В соответствии с просьбой в комментариях, реализация метода Prob():
def prob(self, x):
"""Computes probability of removing x items
:param x: number of items to remove
:returns: probability of removing x items
"""
# p is the probability of removing an item
# sl.choose computes n choose x
return sl.choose(self.n, x) * (self.p**x) * \
(1-self.p)**(self.n-x)
Вы должны попробовать код Обзор –
@PythonMaster Хорошо спасибо! – Connor
Что такое 'prob()'? – Divakar