' numpy.ndarray'对象没有属性' insert'

时间:2015-08-04 09:14:37

标签: python numpy

我想在向量中添加一个元素:

import time
from numpy import *
from scipy.sparse.linalg import bicgstab,splu
from scipy.sparse import lil_matrix,identity
from scipy.linalg import lu_factor,lu_solve,cho_factor,cho_solve
from matplotlib.pyplot import *

 #N,alfa and beta are introduced

    M = lil_matrix((2*N,2*N), dtype='float64')
    b=zeros(2*N)
    M.setdiag(alfa*ones(2*N),0)
    M.setdiag(beta*ones(2*N-1),1)
    M.setdiag(beta*ones(2*N-1),-1)
    M.setdiag(ones(2*N-2),2)
    M.setdiag(ones(2*N-2),-2)
    M=M.tocsc()

    for i in range(0,2*N):
        b[i]=2*dx*feval(fuente,x[i])/6.0

    A=1.0/(3.0*dx)*M
    u=bicgstab(A,b)
    usol=u[0]

现在我想要usol.insert(0,1) usol=[1,usol[0],usol[1],..],但我有一个错误' numpy.ndarray'对象没有属性'插入'

2 个答案:

答案 0 :(得分:4)

insert不是数组的属性。您可以使用usol=insert(usol,0,1)来获得所需的结果。

答案 1 :(得分:3)

在numpy中,insert是一个函数,而不是一个方法。所以你必须使用以下内容:

import numpy as np
#rest of your code
usol=np.insert(usol,0,1)

这将创建一个usol的副本,其中插入了值。请注意,插入不会就地发生。 您可以查看文档here