为什么numpy.ndarray是对象在我的简单for python循环中不可调用

bnlyeluc  于 2023-08-05  发布在  Python
关注(0)|答案(6)|浏览(148)

我加载了一个包含两列矩阵(例如下)

[ 1   3
  2   4
  3   5 
  2   0]

字符串
我的计算只是对每行求和,即1+3、2+4、3+5和2+0。我正在使用下面的代码:

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)


但是我收到了一个错误,说numpy.ndarray object is not callable。为什么会发生这种情况?我怎么能做这个简单的计算呢?- 谢谢-谢谢

qybjjes1

qybjjes11#

错误TypeError:“numpy.ndarray”对象不可调用意味着您尝试将numpy数组作为函数调用。
使用方式

Z=XY[0]+XY[1]

字符串
而不是

Z=XY(i,0)+XY(i,1)

0tdrvxhp

0tdrvxhp2#

有时,当函数名和存储函数返回的变量名相同时,显示错误。就发生在我身上。

4jb9z9bj

4jb9z9bj3#

避免循环。您要执行的操作是:

import numpy as np
data=np.loadtxt(fname="data.txt")## to load the above two column
print data
print data.sum(axis=1)

字符串

exdqitrt

exdqitrt4#

避免使用for循环for XY in xy:,而是阅读numpy数组是如何索引和处理的。
Numpy Indexing
如果你正在处理矩阵,也要尽量避免使用.txt文件。尝试使用.csv或.npy文件,并使用Pandas数据库加载它们只是为了清晰起见。

wribegjk

wribegjk5#

不是上面的例子,但有时会发生这个错误,因为你忘记为numpy.ndarray指定括号[]而不是括号。例如在for循环中编写arr(x,y),在arr中探索x和y,而不是它的正确形式:arr[x,y]。

shstlldc

shstlldc6#

我有一个名为“open”的变量,所以当我试图使用函数“open”时,程序一直在调用“open”变量而不是“open”函数。于是我找到了两个解决办法:
1.重命名变量
1.在调用“open”函数之前删除变量

相关问题