Re:Help us collect modern Python NumPy code solutions
by johndough on Monday March 28, 2022 @10:32AM
(#30830883)
You are completely right. Nevertheless, when I zip over arrays of different length, it is usually a bug instead of being intentional.
A code-golfed version for different array lengths:
np.c_[[a[:min(map(len,arrays))].T for a in arrays]].T
The trick to get a local variable within a list comprehension statement with for l in [foo()]
from your zip_array function is very cool by the way, but I sacrificed it in favor of shorter code.
Re:Help us collect modern Python NumPy code solutions
by PartiallyTyped on Monday March 28, 2022 @01:15PM
(#30832905)
I like your your solution, I think using `a[0:min(map(len,arrays))]` (ie with 0) is faster because it returns a slice and not a copy of the array.
I am glad you liked the trick!
>>> list(zip(*a))
[(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]
zip_arrays otoh does give the same result.
>>> zip_arrays(a)
array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])