次のコードを短くする方法と効率を上げる方法を知りたいと思います。私は(または私は)機能的な方法を使用して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