当我运行代码时,mi首先出现错误是:
TypeError: 'numpy.float64' object cannot be interpreted as an integer
我尝试安装 numpy 1.11.0 但它不起作用。如果 y 更改为 int() 则会出现新错误:
这是代码:
# Load airfoil from file
def airfoil_from_file(fname, n=256):
dat = np.loadtxt(fname, skiprows=1)
eps=1e-8
num1 = round(dat[0,0])
num2 = round(dat[0,1])
if num1>1:
xy = zeros((num1+num2-1,2))
xy[:num1,:] = dat[1:1+num1,:][::-1,:]
xy[num1:,:] = dat[2+num1:,:]
else:
xy=dat.copy()
第一个错误:
Traceback (most recent call last):
File "compute.py", line 18, in <module>
rx, ry = airfoil_from_file('clarky.dat', n=128)
File "/home/david/Descargas/L04PanelMethod/geometry.py", line 29, in airfoil_from_file
xy = zeros((num1+num2-1,2))
TypeError: 'numpy.float64' object cannot be interpreted as an integer
如果我更改为 int():
def airfoil_from_file(fname, n=256):
dat = int(np.loadtxt(fname, skiprows=1))
eps=1e-8
新错误:
Traceback (most recent call last):
File "compute.py", line 18, in <module>
rx, ry = airfoil_from_file('clarky.dat', n=128)
File "/home/david/Descargas/L04PanelMethod/geometry.py", line 22, in airfoil_from_file
dat = int(np.loadtxt(fname, skiprows=1))
TypeError: only length-1 arrays can be converted to Python scalars
请帮助
在您的原始代码中更改xy = zeros((num1+num2-1,2))
为xy = zeros((int(num1+num2)-1,2))
。
舍入仅舍入,但不会转换为 int。
num1 = round(dat[0,0])
num2 = round(dat[0,1])
在您的情况下舍入到最接近的浮点数,例如 round(12.4) = 12.0。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句