[cctbxbb] Inconsistency between numpy and flex (sclice notation)
luc_j_bourhis at mac.com
Tue Jan 3 07:50:05 PST 2012
On 3 Jan 2012, at 16:29, Jan Marten Simons wrote:
> Ok, so if I want to do many (writing) operations on sclices of the miller
> array it would be best to copy/convert it into a numpy array first, so I don't
> have the overhead of the individual copy operations then.
No, write operations are done directly on the array on which you use the slicing notation:
grild[1:2, :] = flex.double(...)
will incur the memory allocation of the right-hand side but then there is no extra temporary array involved.
My point was just that in:
for x in grid[1:2, :]:
there is the allocation and initialisation of a temporary array that holds the slice. In numpy, grid[1:2,:] would behave like an iterator in this context and there would be no temporary array.
More information about the cctbxbb