[SciPy-User] Avoiding inner for loops??
Martin De Kauwe
mdekauwe at gmail.com
Sun Aug 19 05:07:59 EDT 2012
Hi,
I need to avoid (at least) two inner for loops in what I am trying to do
otherwise my processing takes forever. What is the best way to transfer
what I am doing into a more "numpy way"? Essentially I am trying to call a
model again for various different parameter combinations. The example is
fictional, by the grid_size would ideally grow > 500 and by doing so the
processing speed becomes very slow the way I have set things up..
thanks.
example.
import numpy as np
def fake_model(data1, data2, p1, p2, p3):
""" complete nonsense """
return data1 + data2 * p1 * p2 * p3
data1 = np.random.rand(10) # the size of this arrays varies might be 10
might be 15 etc
data2 = np.random.rand(10) # the size of this arrays varies might be 10
might be 15 etc
obs = np.random.rand(10) # the size of this arrays varies might be 10 might
be 15 etc
grid_size = 10 # Ideally this would be a large number
param1 = np.linspace(5.0, 350, grid_size)
param2 = np.linspace(5.0, 550, grid_size)
param3 = np.linspace(1E-8, 10.5, grid_size)
ss = np.zeros(0)
for p1 in param1:
for p2 in param2:
for p3 in param3:
ans = fake_model(data1, data2, p1, p2, p3)
ss = np.append(ss, np.sum(obs - ans)**2)
print np.sum(obs - ans)**2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20120819/d4a8576d/attachment.html>
More information about the SciPy-User
mailing list