Why did not numpy copy the J rank concept?

14 pointsposted 7 months ago
by jrank

Item id: 44471390

6 Comments

tester89

7 months ago

The question you're asking seems interesting, but I don't understand J code so I don't know what you're talking about. Expanding the explanation would be helpful!

jrank

7 months ago

If you have a a Numpy function that takes for example two arguments, my proposal is to add a optional argument that allows that function to be applied to cells of dimensions i and j by function_name(a,b,range=(i,j)) so that the function is applied to subarrays of dimension i of a and subarrays of dimension j of b to create a new array. The broadcast operation and the axis arguments are not a general solution. I J you have such mechanism as the example shows.

The 1 cell of a matrix are the rows, etc.

gus_massa

7 months ago

I'm still confused. Can you type the complete slow python code?

We had a weird multiplication last year and the solution in python was to use @guvectorize https://numba.pydata.org/numba-doc/dev/user/vectorize.html and broadcasting. I don't know if that's possible with your problem.

jrank

7 months ago

guvectorize in numba seems to be a good approximation to the rank concept I mentioned, but is not a complete solution. Unfortunately I don't have the time now to study it and make a complete comparison, but guvectorize is in the good direction. Thanks for providing that information.

Pompidou

7 months ago

Maybe the internal broadcasting mecanism in numpy don't allow this nativelly ?

jrank

7 months ago

The post I referenced before shows that broadcast is not a general solution.