I loaded a text file containing a two column matrix (e.g. below)
[ 1 3 2 4 3 5 2 0]
My calculation is just to sum each row i.e. 1+3, 2+4, 3+5 and 2+0. I am using the below code:
data=np.loadtxt(fname="textfile.txt")## to load the above two column xy= data for XY in xy: i=0 Z=XY(i,0)+XY(i,1) i=i+1 print (Z)
But I received an error saying
numpy.ndarray object is not callable. Why does this happen? How can I do this simple calculation? Thanks.
The error TypeError: ‘numpy.ndarray’ object is not callable means that you tried to call a numpy array as a function.
Avoid loops. What you want to do is:
import numpy as np data=np.loadtxt(fname="data.txt")## to load the above two column print data print data.sum(axis=1)
Sometimes, when a function name and a variable name to which the return of the function is stored are same, the error is shown. Just happened to me.
Avoid the for loop
for XY in xy:
Instead read up how the numpy arrays are indexed and handled.
Also try and avoid .txt files if you are dealing with matrices. Try to use .csv or .npy files, and use Pandas dataframework to load them just for clarity.