【数据处理】csv文件格式操作与python多维数组切片操作

编程入门 行业动态 更新时间:2024-10-28 15:35:22

1.说明

CSV是一种以逗号分隔数值的文件类型,在数据库或电子表格中,常见的导入导出文件格式就是CSV格式,CSV格式存储数据通常以纯文本的方式存数数据表。
excel:

txt文本中:

2.问题

现在需要用线性回归求出一批参数,其公式为a=wx+b,其中a为一个值,w为2881的矩阵,x为1288维的矩阵,b为偏置向量,其形式为a=w1x1+w2x2+…+w288*x288+b

3.代码与讲解分析

(1)数组与np.array
Python中提供了list容器,可以当作数组使用。但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简单的列表[1,2,3]。就需要三个指针和三个整数对象。对于数值运算来说,这种结构显然不够高效。
Python虽然也提供了array模块,但其只支持一维数组,不支持多维数组(在TensorFlow里面偏向于矩阵理解),也没有各种运算函数。因而不适合数值运算。
NumPy的出现弥补了这些不足。

(——摘自张若愚的《Python科学计算》)

(2)计算形式:
x的每一行对应了y的每一行,x一般有多个,y一般为一个,即求
y=w1x1+w2x2+…+wnxn,调用函数fit即可求出w1,w2…wn个参数,
在此例中x的参数有288个。

(3)关于多维切片

      x= deliveryData[:,0:-3]    # 所有行,第一列到倒数第四列(-3列前一列)y = deliveryData[:,-1]#所有行,倒数第一列

在本例二维数组中,“,”的含义是区分维度的,在第一行表示行(第一维)x:y表示从x行到y-1行,若x为空默认从第一行起始,若y为空默认到最后一行,第二维同理,这样可以切选出自己想要的矩阵数组,若为负数则为从末尾开始。
(4).fit源码分析
之后再更,先占个坑

  #coding=utf-8# @Author: lihao# @Time: 2019-09-09 10:11# @Abstract:多元线性回归(Multiple Regression)算法  含类别变量from numpy import genfromtxtimport numpy as npfrom sklearn import linear_modeldatapath=r"/home/lihao/Desktop/data_controller3.csv" #ctrl+l可以查看文件路径#从文本文件中提取数据并转为numpy Array格式deliveryData = genfromtxt(datapath,delimiter=',')#deliveryData = [[ 0  ,1 , 2 , 3 , 4],# [ 5 , 6 , 7,  8 , 1.65],# [10 ,11 ,12 ,13 ,2.85],# [15, 16 ,17 ,18 ,4],# [20 ,21, 22 ,23, 5.2]]#deliveryData=np.arange(864).reshape(3,288)#deliveryData=np.array(deliveryData)#print (data)print(deliveryData)# 读取自变量X1...x5x= deliveryData[:,0:-3]    # 读取因变量    y = deliveryData[:,-1]print ("x:",x)    print ("y:",y)# 调用线性回归模型    lr = linear_model.LinearRegression()    # 装配数据    lr.fit(x, y)   print (lr) print("coefficients:")   print (lr.coef_)print("intercept:")print (lr.intercept_)#预测xPredict = deliveryData[-20:,0:-3]   yPredict = lr.predict(xPredict)    yreally=deliveryData[-20:,-1]    print("predict:")    print(yPredict)print(yreally)


更多推荐

多维,操作,数据处理,数组,切片

本文发布于:2023-05-25 12:57:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/228595.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多维   操作   数据处理   数组   切片

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!