So you are getting this numpy python error ‘numpy.ndarray’ object is not callable. Right? This is because somewhere in your code you are using a non-function element like int, array, object, list etc. as function. For example –
Suppose, you have an array – myArray = [2, 3, 4]
. Now to access the first element, you should use myArray[0]
. But sometimes we mistakenly use myArray(0)
.
import numpy as np data = np.array([[1, 2], [3, 4]]) xy = data for XY in xy: i=0 Z=XY(i,0)+XY(i,1) i=i+1 print (Z)
This will throw error, ‘numpy.ndarray‘ object is not callable, because XY
is the vector not function. And we are fetching the value, not by index but by passing parameter to it. So, XY(i, 0)
is the wrong way. The correct way is XY[0]
and XY[1]
.
Now, let’s correct our above code snippet –
import numpy as np data = np.array([[1, 2], [3, 4]]) xy = data for XY in xy: i=0 Z=XY[0]+XY[1] i=i+1 print (Z)
The major reason for this error is the conflict of user defined variable names with system functions. For example, you define an integer variable
round
and try to use math functionround
. Python will throw error, “Object is not callable”