module'fitting has no attribute'fitting' 请问这是什么问题呢

报错信息如下:

traceback (most recent call last ):

FIle "D:\Separate data\fit_main.py",line 19,in<module>

       coef = fitting.fitting(file_path)

AttributeError: module'fitting has no attribute'fitting'

现在有6个拟合函数,要一个excel中的第一列数据的个数,然后把第一列的数据逐个带入到每一个拟合函数中,求出拟合值

主要就是求带入各个拟合函数的拟合值

#fit_main.py
import os
import xlrd
import numpy as np
import pandas as pd
import fitting
# 获取2003年的数据量与SRTM高程数据
data = xlrd.open_workbook('D:\\AB_ICESAT\\delete abnormal\\zhengti\\2003.xlsx')  # excle文件位置
table = data.sheets()[0]  # 读取第一个表
rows=table.nrows  # 获取工作表中的总行数
clou_1 = table.col_values(0)  # 读取第一列
x = clou_1[1:]  # 去除第一行的第一个数
array = np.zeros([rows-1,7])

# 对每年的数据进行拟合
fileList = os.listdir('D:\AB_ICESAT\delete abnormal\zhengti')  # listdir的参数是文件夹的路径
i = 0
for file in fileList:
    file_path = os.path.join('D:\AB_ICESAT\delete abnormal\zhengti', file)  # 将路径与文件名结合起来就是每个文件的完整路径
    coef = fitting.fitting(file_path)
    print(coef)
    # 将2003年的SRTM高程数据带入拟合函数中
    yvals = np.polyval(coef, x)  # 将x带入多项式
    print(yvals)
    for j in range(rows-1):
        array[j][i] = yvals[j]
    i += 1
print(array)
#np.savetxt("D:/code/design2/out.txt", array, "%f ,%f ,%f ,%f ,%f ,%f ,%f", delimiter=',')

#将输出的矩阵保存到Excel
Data = pd.DataFrame(array)
writer = pd.ExcelWriter('D:\AB_ICESAT\delete abnormal\out.xlsx')		# 写入Excel文件
Data.to_excel(writer, 'page_1')		# ‘page_1’是写入excel的sheet名
writer.save()
writer.close()
#fitting.py
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#读取Excel中的数据
import xlrd
def fitting(path):
    data = xlrd.open_workbook(path)  # excle文件位置
    table = data.sheets()[0]  # 读取第一个表
    clou_1 = table.col_values(0) #读取第一列
    x_axis = clou_1[1:] #去除第一行的第一个数
    clou_2 = table.col_values(1) #读取第二列
    y_axis = clou_2[1:] #去除第一行的第一个数

    #定义x、y散点坐标
    x = np.array(x_axis)
    #print('x is :\n',x)
    y = np.array(y_axis)
    #print('y is :\n',y)
    #用3次多项式拟合
    f1 = np.polyfit(x, y, 3)  # 返回多项式系数,deg次数太高会有震荡
    #print('f1 is :\n',f1)

    p1 = np.poly1d(f1)  # 获得多项式
    print('p1 is :\n',p1)

    yvals=np.polyval(f1, x)  # 将x带入多项式
    correlation = np.corrcoef(y, yvals)[0, 1]  # 相关系数correlation**2 #R方
    print(correlation)
    #绘图
    plot1 = plt.plot(x, y, 'b+',label='original values')
    plot2 = plt.plot(x, yvals, '.r',label='polyfit values')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.legend(loc=4) #指定legend的位置右下角
    plt.title('polyfitting')
    plt.show()
    return f1

 

import numpy as np 导入失败了,是不是版本兼容性问题呢?

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632