I have the following problem: I want to compute the softmax function in Python and get an unexpected result. The code is the following:import numpy as npdef softmax(x):    Compute softmax values for each sets of scores in x.    return np.exp(x) / np.sum(np.exp(x), axis=0)It works perfectly but I dont know why: It works on matrices as follows: If I insert a 2x2 matrix A, the output is yet another 2x2 matrix. Why is that? Shouldnt it return a differently sized array since every element of the matrix, i.e. $x=A[0,0]$, yields 2 output values (namely $exp(x)/(exp(A[0,0])+exp(A[1,0]))$ and $exp(x)/(exp(A[0,1])+exp(A[1,1]))$, because or the axis=0 command? That would lead to an 8-element output array, but the actual result only has 4 elements. Also, how exactly does the axis=0 command work? If I type A=np.array([2, 4]), then the logical result of np.sum(A, axis=0) should be array([2, 4]), since the columns are summed up. But the result is array([6]). And the command np.sum(A, axis=1) strangely yields 'axis' entry is out of bounds, although the result should be array([6]) since the rows are summed up. Maybe my two problems are linked.Any help will be appreciated!Thanks,Leon
Python command np.sum(x, axis=0) and softmax function
algorithms