python - 使用 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)
解决方案
推荐阅读
- macos - Core Bluetooth 和 IOBluetooth 有什么区别
- javascript - 有没有办法在java脚本中简化这个函数?
- docker - 各种shell中的反斜杠、反引号和插入符号有什么意义
- python - 如何使用具有正拟合值的 statsmodels 线性回归?
- google-chrome-extension - 在 box.com、Onedrive、Google 驱动箱等存储网站上未收到浏览器的 OnBeforePrint 事件
- node.js - mup 部署上的流星构建失败
- kubernetes - 如何在 Kubernetes 上使用 dotnet core agent 来实现弹性 apm?
- python - 在 Rstudio 的 mac 上运行 clinspacy 时无法配置 python
- java - JSP FORM POST:空属性
- javascript - 如何从javascript中的特定类获取数据?