首页 > 解决方案 > 使用 python 代码版本 2.7 进行样条拟合(从 excel 文件中读取 x 和 y 的值)

问题描述

我想简单地从我的 Excel 文件(sheet1)中读取两列数据(值)作为 X 和 Y,并对数据进行样条曲线拟合。所以我可以选择任何所需的 x 值(比如说 2.6)并计算 y。

你能指导我吗?

我尝试了以下两种方法,它们都不起作用!

我尝试这样做的两种方法:

第一种方法:

from scipy import interpolate
import numpy as np
from openpyxl import load_workbook


#read  from excel file

wb = load_workbook('python_excel_read.xlsx')

sheet1 = wb.get_sheet_by_name('Sheet1')


x = np.zeros(sheet1.max_row)
y = np.zeros(sheet1.max_row)

for i in range(0,sheet1.max_row):
    x[i]=sheet1.cell(row=i+1, column=1).value
    y[i]=sheet1.cell(row=i+1, column=2).value



def f(x):
    x_current = [x]
    y_voltage = [y]


    tck = interpolate.splrep(x_current, y_voltage)
    return interpolate.splev(x, tck)

print f(2.6)

我的第二种方法:

from scipy import interpolate

import xlwings as xw

wb = xw.Book('python_excel_read.xlsx')
sht = xw.Book('Sheet1')

x_current = sht.range1('A2:A40').value
y_voltage = sht.range2('B2:B40').value


def f(x):
    x_current = [sht.range1]
    y_voltage = [sht.range2]


    tck = interpolate.splrep(x_current, y_voltage)
    return interpolate.splev(x, tck)

print f(2.6)

标签: pythonscipy

解决方案


推荐阅读