top | item 40283314

(no title)

C4stor | 1 year ago

All of this seems unnecessary, and easily replaced in the provided benchmark by :

i2 = np.ascontiguousarray(pg.surfarray.pixels3d(isurf))

Which does the 100x speedup too and is a "safe" way to adjust memory access to numpy strides.

Whether the output is correct or not is left as an exercise to the author, since the provided benchmark only use np.zeros() it's kind of hard to verify

discuss

order

yosefk|1 year ago

I just measured this with the np.ascontiguousarray call (inside the loop of course, if you do it outside the loop when i2 is assigned to, then ofc you don't measure the overhead of np.ascontiguousarray) and the runtime is about the same as without this call, which I would expect given everything TFA explains. So you still have the 100x slowdown.

TFA links to a GitHub repo with code resizing non-zero images, which you could use both to easily benchmark your suggested change, and to check whether the output is still correct.