python read_excel_read_xlspython读写Excel,readxlspython,excel

本文介绍了一种利用Python读取Excel文件并进行多项式拟合及梯度计算的方法,通过将计算结果写回新的Excel文件中实现数据处理自动化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# coding=utf-8

import xlrd

import xlwt

import numpy as np

import matplotlib.pyplot as plt

import torch

from torch.autograd import Variable

import os

def get_grad(y):

x = np.arange(1, y.shape[0]+1, 1)

z1 = np.polyfit(x, y, 16)

#p1 = np.poly1d(z1)

#yvals=p1(x)

#plt.plot(x,y,"og")

#plt.plot(x, yvals, 'r',label='polyfit values')

x_tensor = Variable(torch.from_numpy(x).float(), requires_grad=True)

y_tensor=float(z1[0])*x_tensor**16+float(z1[1])*x_tensor**15+float(z1[2])*x_tensor**14+float(z1[3])*x_tensor**13+float(z1[4])*x_tensor**12+float(z1[5])*x_tensor**11+float(z1[6])*x_tensor**10+float(z1[7])*x_tensor**9+float(z1[8])*x_tensor**8+float(z1[9])*x_tensor**7+float(z1[10])*x_tensor**6+float(z1[11])*x_tensor**5+float(z1[12])*x_tensor**4+float(z1[13])*x_tensor**3+float(z1[14])*x_tensor**2+float(z1[15])*x_tensor**1+float(z1[16])*x_tensor**0

y_tensor.backward(x_tensor)

return x_tensor.grad

def read_xlrd(excelFile, tempfilename):

data = xlrd.open_workbook(excelFile)

table = data.sheet_by_index(0)

workbook = xlwt.Workbook(encoding = 'utf-8')

worksheet = workbook.add_sheet('My Worksheet')

for rowNum in range(table.nrows):

rowVale = table.row_values(rowNum)

if rowNum == 0:

for i,value in enumerate(rowVale[1:]):

worksheet.write(rowNum, i + 1, label = str(int(value)))

for colNum in range(table.ncols):

if rowNum > 0 and colNum == 0:

new_grad = get_grad(np.array(rowVale[1:]))

worksheet.write(rowNum,0, label = rowVale[0])

for k,grad in enumerate(new_grad):

worksheet.write(rowNum,k+1, label = str(float(grad)))

print(new_grad)

print("---------------")

workbook.save("new_grad/"+tempfilename)

if __name__ == '__main__':

lines = [line.strip() for line in open("list.txt", 'r').readlines()]

for line in lines:

excelFile = line

if not os.path.exists("new_grad"):

os.makedirs("new_grad")

(filepath, filename) = os.path.split(line)

read_xlrd(excelFile,"new_"+filename)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值