24小时热门版块排行榜    

查看: 7482  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

yuzhifei2008

铁虫 (著名写手)

小虫

[求助] python中TypeError: 'numpy.ndarray' object is not callable错误 已有1人参与

我在编写高斯法解线性方程的函数时候,运行老是出现TypeError: 'numpy.ndarray' object is not callable错误,麻烦大家给指点下,谢谢!!
程序代码:#高斯消去法解线性方程


def gauss(a,b,n):
    import numpy as np
    s=np.zeros(n)
    L=np.zeros(n)
    for i in range(n-1):
        max=0
        L=i
        for j in range(n-1):
            if abs(a([i,j]))>abs(max):
                max=a([i,j])
        s=max
    for k in range(n-2):
        rmax=0
        for i in range(k,n-1):
            if abs(a[L,k]/s)>abs(rmax):
                   rmax=a[L,k]/s
                   j=i
        L[k]=j
        L[j]=k
        for i in range(k+1,n-1):
            c=a[L,k]/a[L[k],k]
            for j in range(k,n-1):
                a[L,j]=a[L,j]-c*a[L[k],j]
        b[L]=b[L]-c*b[L[k]]
    x[n-1]=b[L[n-1]]/a[L[n-1],n-1]
    for i in range(n-2,0,-1):
        sum=0
        for j in range(i+1,n-1):
            sum=x[j]*a[L,j]
        x=sum/a[L,i]
    return x

import numpy as np
aa=np.array([[2,1],[1,1]])
bb=np.array([3,2])
x=gauss(aa,bb,2)
print(x)

运行结果:Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\高斯消去.py", line 38, in <module>
    x=gauss(aa,bb,2)
  File "C:\Users\Administrator\Desktop\高斯消去.py", line 12, in gauss
    if abs(a([i,j]))>abs(max):
TypeError: 'numpy.ndarray' object is not callable
回复此楼

» 猜你喜欢

青春无悔!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yuzhifei2008

铁虫 (著名写手)

小虫

送红花一朵
引用回帖:
6楼: Originally posted by dslwz2008 at 2015-11-16 00:22:15
a()不能这么取数组下标,
a这样就能取到了

谢谢你帮助,我太粗心了,运行一下可以了。

发自小木虫Android客户端
青春无悔!
7楼2015-11-16 01:05:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

dslwz2008

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
看一下这一句,  if abs(a([i,j]))>abs(max):
a是个什么类型的对象呢?
a([i,j])从你用法上看,a是函数?接收一个list?
2楼2015-11-14 15:04:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yuzhifei2008

铁虫 (著名写手)

小虫

引用回帖:
2楼: Originally posted by dslwz2008 at 2015-11-14 15:04:28
看一下这一句,  if abs(a())>abs(max):
a是个什么类型的对象呢?
a()从你用法上看,a是函数?接收一个list?

a是一个数组,调用定义函数guass函数的时候,a定义好了aa=np.array([[2,1],[1,1]])
青春无悔!
3楼2015-11-14 16:26:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dslwz2008

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★
yuzhifei2008: 金币+6 2015-11-15 01:33:04
那你用法肯定错了,取下标不要加小括号!

发自小木虫Android客户端
4楼2015-11-15 01:23:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见