Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python numpy.float64';对象不能解释为整数_Python_Numpy_Compiler Errors_Floating Point_Solution - Fatal编程技术网

Python numpy.float64';对象不能解释为整数

Python numpy.float64';对象不能解释为整数,python,numpy,compiler-errors,floating-point,solution,Python,Numpy,Compiler Errors,Floating Point,Solution,我在山坡扩散方程上运行这段代码时遇到了一些问题。我不是python代码方面的专家!即使我纠正了一些其他问题,代码也会再次返回“numpy.float64”对象不能解释为整数的问题。你能给我一些解决方案或者代码中的其他错误吗? 这里是代码 提前谢谢 阿尔巴 “” 从输入import Callable开始 从mpl_toolkits.mplot3d导入Axes3D 将matplotlib.pyplot作为plt导入 将numpy作为np导入 从matplotlib导入cm 作为pd进口熊猫 导入py

我在山坡扩散方程上运行这段代码时遇到了一些问题。我不是python代码方面的专家!即使我纠正了一些其他问题,代码也会再次返回“numpy.float64”对象不能解释为整数的问题。你能给我一些解决方案或者代码中的其他错误吗? 这里是代码 提前谢谢 阿尔巴

“”
从输入import Callable开始
从mpl_toolkits.mplot3d导入Axes3D
将matplotlib.pyplot作为plt导入
将numpy作为np导入
从matplotlib导入cm
作为pd进口熊猫
导入pyodbc
从notebook.utils导入*
乐趣=可调用[[float],float]
数据=pd.read\u excel('rova\u prof.xlsx')
打印(数据)
x=data.iloc[:,:-1]。值
打印(x)
z=data.iloc[:,-1]。值
打印(z)
def_uuprepare_uu(数据,x,z,method=“linear”):#本例中没有关键字
返回成员_表()
x=np.linspace(x[0],x[-1])
z=np.linspace(z[0],z[-1])
plt.plot(x,z,clip_on=False)
plt.show()
def solve_inplicit_gen(c:float,f:fun,g:fun,首字母:fun,T:float,
a:浮动,
b:浮动,
dt:float,dx:float,th:float=0.5,gen=0):
ddx=dx*dx
lam=c*c*dt/ddx
印刷品(林)
J=((b-a)//dx+1)
N=(T//dt+1)
zac=np.零(J)
对于范围(0,J)内的i:
zac[i]=首字母(a+i*dx)
印刷品(一)
U1=zac
U2=np.零(J)
“返回U”
对于范围(1,n)中的n:
对于范围(1,J-1)内的i:
U2[i]=lam*(U1[i-1]-2*U1[i]+U1[i+1])+U1[i]
U2[0]=f(a)
U2[-1]=g(b)
如果n%gen==0:
产量U1
U1=U2
U2=np.零(J)
a=z[len(z)//2]
b=z[-1]
印刷品(a、b)
D=20e-4
c=D**0.5
初始值=z
f=λx:int(a)
g=λx:int(b)
dx=(b-a)/100
dt=1/(2*c*c)*dx*dx
#dt=10
#滴滴涕=100
T=100*dt
X=np.arange(a,b+dx,dx)
如果x[-1]>b:
x=x[:-1]
Z=np.arange(0,T+dt,dt)
如果z[-1]>T:
z=z[:-1]
plt.plot([X],[Z],label=“初始状态”)
gy=1000
对于年份,枚举中的值(求解实际生成(c,f,g,initial,T,a,b,dt,dx,gen=gy)):
plt.绘图(X,零件,标签=str(年*gy)+“年”)
#plt.show()
#输入()
leg=plt.legend(loc='左下角',shadow=True,fontsize='x-small')
leg.get_frame().set_facecolor(“#00FFCC”)
产品名称(“概要1”)
plt.show()
'''
'''
TypeError回溯(最近一次调用上次)
在里面
24 plt.绘图([X],[Z],label=“初始状态”)
25戈瑞=1000戈瑞
--->26对于年份,枚举中的值(求解实际生成(c,f,g,initial,T,a,b,dt,dx,gen=gy)):
27 plt.绘图(X,零件,标签=str(年份*gy)+“年”)
28#plt.show()
在解算法中生成(c,f,g,initial,T,a,b,dt,dx,th,gen)
18
19
--->20 zac=np.零(J)
范围(0,J)内的i为21:
22 zac[i]=初始值(a+i*dx)
TypeError:“numpy.float64”对象不能解释为整数
'''

您问题中的代码没有正确缩进,这几乎无法理解。请回答您的问题并解决此问题。
    '''
    from typing import Callable
    from mpl_toolkits.mplot3d import Axes3D
    import matplotlib.pyplot as plt
    import numpy as np
    from matplotlib import cm
    import pandas as pd
    import pyodbc
    from notebook.utils import *


    fun = Callable[[float], float]
    data=pd.read_excel('rova_prof.xlsx')
    print (data)

    x = data.iloc[:, :-1].values
    print(x) 
    z = data.iloc[:,-1].values
    print(z)

    def __prepare__(data,x,z,method="linear"): # No keywords in this case
    return member_table()
    x= np.linspace(x[0], x[-1]) 
    z=np.linspace (z[0], z[-1])
    plt.plot(x, z, clip_on = False)

    plt.show ()

    def solve_inplicit_gen(c: float, f: fun, g: fun, initial: fun, T: float,
                   a: float,
                   b: float,
                   dt: float, dx: float, th:float = 0.5, gen=0):
   ddx = dx * dx
   lam = c * c * dt / ddx
   print(lam)
   J = ((b - a) // dx + 1)
   N = (T // dt + 1)


  zac=np.zeros(J)
  for i in range (0, J):
  zac[i]= initial(a + i * dx)
  print (i)

  U1 = zac
  U2 = np.zeros(J)
  'return U'
  for n in range(1, N):

     for i in range(1, J - 1):
         U2[i] = lam * (U1[i - 1] - 2 * U1[i] + U1[i + 1]) + U1[i]
     U2[0] = f(a)
     U2[-1] = g(b)
     if n % gen == 0:
         yield U1
     U1 = U2
     U2 = np.zeros(J)

    a = z[len(z) // 2]
    b = z[-1]
    print(a, b)
    D = 20e-4
    c = D ** 0.5
    initial = z
    f = lambda x: int(a)
    g = lambda x: int(b)

    dx = (b - a) / 100
    dt = 1 / (2 * c * c) * dx * dx
    #dt = 10
    #ddt = 100
    T = 100*dt


    X = np.arange(a, b + dx, dx)
    if x[-1] > b:
    x = x[:-1]
    Z = np.arange(0, T + dt, dt)
   if z[-1] > T:
   z = z[:-1]

   plt.plot([X],[Z],label="Initial state")
   gy = 1000
   for year,value in enumerate(solve_inplicit_gen (c, f, g, initial,T, a,b, dt, dx, gen=gy)):
                  plt.plot(X, part, label=str(year*gy) + " years")
                  # plt.show()
                  # input()

     leg = plt.legend(loc='lower left', shadow=True, fontsize='x-small')

     leg.get_frame().set_facecolor('#00FFCC')

     plt.title("Profile 1")
     plt.show()
     '''


     '''
     TypeError                                 Traceback (most recent call last)
     <ipython-input-6-3ee8690ef980> in <module>
     24 plt.plot([X],[Z],label="Initial state")
     25 gy = 1000
  ---> 26 for year,value in enumerate(solve_inplicit_gen (c, f, g, initial,T, a,b, dt, dx, gen=gy)):
     27                       plt.plot(X, part, label=str(year*gy) + " years")
     28                       # plt.show()

    <ipython-input-5-2f0af14af86b> in solve_inplicit_gen(c, f, g, initial, T, a, b, dt, dx, th, gen)
    18 
    19 
   ---> 20     zac=np.zeros(J)
    21     for i in range (0, J):
    22         zac[i]= initial(a + i * dx)

    TypeError: 'numpy.float64' object cannot be interpreted as an integer
    '''