It looks like you're trying to perform the ReLu function on a matrix, which IIRC will take subzero values and "shift them up" to 0, and will leave positive values unchanged.
Where you've gone wrong, as others have suggested, is that you are missing some basic principles of how the numpy api operates.
The corrected RELU function would, I believe, be:
def ReLu(x):
x[x < 0] = 0
Why? What you're doing here is threefold.
The first resolved expression, x < 0
returns another numpy array of the same shape, except that there are "true" values where the elements of the array are less than zero, and "false" values elsewhere.
The next resolved part of the expression is to select a "view" of the numpy array. This basically means "give me those elements of the array that match the true values we defined earlier."
The final step is to assign to those values the value you want, which is 0.
Hopefully this is helpful!