On Mar 8, 2011, at 11:56 AM, Josh Hykes wrote: > At some point in my code, I need to do a cell-wise multiplication of the > properties with a state variable. The ideal method would (1) be fast (no > Python loops) and (2) not waste memory constructing an entire property map. > My best attempt using choose does (1) but not (2).
Would the "out" keyword of np.choose be a possible solution? Using that, you should be able to create the properies_map in place, and perhaps you can then do the multiplication with the state variables in place also: import numpy as np properties = {0: 0.5, 1: 2.} # 2 materials mesh_map = np.array([[0,0,0,0], [0,1,1,0], [0,1,1,0], [0,0,0,0]]) # 4x4 mesh state_variables = np.arange(mesh_map.size).reshape(mesh_map.shape) # fake state variables answer = np.empty (mesh_map.shape, np.float) # do this only once with dtype of properties np.choose(mesh_map, (properties[0], properties[1]), out=answer) answer[:] = answer * state_variables Hope this helps, Lutz _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion