数据科学与python语言实验——NumPy数值计算基础

Python数据科学入门:NumPy、Pandas和Matplotlib的实用指南 NumPyPandas和Matplotlib。这些库为数据分析、科学计算和数据可视化提供了强大的功能,使得数据科学工作更加高效和便捷。NumPy:用于高效的数值计算和数组操作。Pandas:用于数据处理和分析,特别适合结构化数据。Matplotlib:用于生成各类图表和可视化数据。通过掌握这些工具,您将能够更好地处理和分析数据,并通过可视化来呈现结果。随着您的深入学习,您将能够处理更复杂的任务,进行更精细的数据分析,推动数据科学技能的提升。 阅读详情

NumPy数值计算基础

实验数据:
链接:https://pan.baidu.com/s/1-E2ShVTdI0X5lwDtMLFFsQ
提取码:0929

代码实现:

之前不会的地方:

1.读取文件
使用numpy内置的loadtxt()函数以及这个函数的参数frame:要读取的文件,dtype读取后的数据类型,delimiter:读取文件中的数据分隔符

 #参数列表:fname要读取的文件,dtype读取后的数据类型,delimiter读取文件中数据的分隔符
        self.data=np.loadtxt(fname=path,dtype=str,delimiter=',')
        

2.数据的切分索引

self.data=self.data[1:,:]#去掉第一行(标签行)
self.colindex=self.data[0,:]#得到标签行

3.将数据中的年份季度带小数的浮点数转化为不带浮点数的整数使用了numpy中的np.char.replace()函数

 #需要将数据中的年份和季度中的小数部分去掉
self.data[:,:2]=np.char.replace(self.data[:,:2],'.0','')
#data[:,:2]是数据中的前两列

4.查找满足条件的行索引

 index = np.where((self.data[:, 0] == year) & (self.data[:, 1] == quarter))  
 # 使用where方法返回符合给定年份和季度的行索引

5.实现变量的展平

import numpy as np


fp='./macrodata.csv'#要读取的文件
op='./test.csv'#输出文件

class processdata:
    colmap = {'year': 0, 'quarter': 1, 'gdp': 2, 'realcons': 3, 'realinv': 4, 'realgovt': 5, 'realdpi': 6, 'cpi': 7, \
              'm1': 8, 'tbilrate': 9, 'unemp': 10, 'pop': 11, 'infl': 12, 'realint': 13}  # 定义一个字典,用来转换字符串列名与列索引
    def __init__(self,path):#定义构造函数
        #参数列表:fname要读取的文件,dtype读取后的数据类型,delimiter读取文件中数据的分隔符
        self.data=np.loadtxt(fname=path,dtype=str,delimiter=',')
        self.data=self.data[1:,:]#去掉第一行(标签行)
        self.colindex=self.data[0,:]#得到标签行
        #需要将数据中的年份和季度中的小数部分去掉
        self.data[:,:2]=np.char.replace(self.data[:,:2],'.0','')#data[:,:2]是数据中的前两列
    def lookupdata(self,year,quarter,col):#查看任意时间点的GDP或者人口信息 col传入gdp或pop
        year = str(int(year))
        quarter = str(int(quarter))
        index = np.where((self.data[:, 0] == year) & (self.data[:, 1] == quarter))  # 使用where方法返回符合给定年份和季度的行索引
        index = np.array(index)
        result = 'The ' + col + ' in quarter ' + str(quarter) + ', year ' + str(year) + ' is '

        if index.size == 0:  # 若没有查找到符合条件的行
            tmp = np.where(self.data[:, 0] == year)
            tmp = np.array(tmp)
            if tmp.size == 0:  # 若没有找到该年份的行
                error = 'The given year ' + str(year) + ' is out of range...'
            else:  # 找到年份但没找到对应的季度
                error = 'The given quarter ' + str(quarter) + ' is not found for the given year ' + str(year) + '...'
            print(error)
            return error
        else:  # 找到了符合条件的结果
            print(result + str(self.data[index[0][0]][processdata.colmap[col]]) + '...')
            return self.data[index[0][0]][processdata.colmap[col]]

    def calPerCapitaGDP(self, year, quarter):  # 计算人均GDP
        year = str(int(year))
        quarter = str(int(quarter))
        index = np.where((self.data[:, 0] == year) & (self.data[:, 1] == quarter))  # 使用where方法返回符合给定年份和季度的行索引
        index = np.array(index)
        result = 'The Per Capita GDP in quarter ' + str(quarter) + ', year ' + str(year) + ' is '
        if index.size == 0:  # 若没有查找到符合条件的行
            tmp = np.where(self.data[:, 0] == year)
            tmp = np.array(tmp)
            if tmp.size == 0:  # 若没有找到该年份的行
                error = 'The given year ' + str(year) + ' is out of range...'
            else:  # 找到年份但没找到对应的季度
                error = 'The given quarter ' + str(quarter) + ' is not found for the given year ' + str(year) + '...'
            print(error)
            return error
        print(
            result + str(float(self.data[index[0][0]][2]) / float(self.data[index[0][0]][11])) + '...')  # 第二列数据/第11列数据
        return float(self.data[index[0][0]][2]) / float(self.data[index[0][0]][11])

    def flattendata(self, col=['gdp', 'pop']):  # 展平方法

        collist = [processdata.colmap[i] for i in col]  # 将要展平的列的列名转换成对应的数值索引
        data = self.data[:, collist]  # 提取这些列的数据
        colarr = np.zeros((self.data.shape[0], 1), dtype=np.float)
        indexdata = self.data[:, [0, 1]]  # 提取年份和季度信息
        indexdata = indexdata.repeat(len(col), axis=0)  # 对年份和季度两列进行纵向重复,重复的次数为要展平的列数,repeat是对所有行整个进行重复
        newdata = data.flatten().reshape(-1, 1)  # 使用flatten方法将要展平的列展平,并转为列向量

        newcol = collist * self.data.shape[0]  # 将要展平的列的列号整个进行横向重复(与repeat重复方式对应),重复次数为原始数据的行数
        newcol = np.array(newcol).reshape(-1, 1)
        tmp = np.hstack((indexdata, newdata))  # 将重复后的日期季度列与展平后的列向量进行横向合并
        tmp = np.hstack((tmp, newcol))  # 再与其原数据所在列号生成的列进行横向合并
        newcolindex = np.array(['year', 'quarter', 'values', 'columns number'])
        tmp = np.vstack((newcolindex, tmp))  # 添加新的列名
        return tmp

    def printdata(self):
        data1 = np.vstack((self.data[:, 2].reshape(-1, 1), self.data[:, 11].reshape(-1, 1)))

        print(data1.shape)


prdata=processdata(fp)#定义了一个类对象来实现这些方法
print('(a):')
prdata.lookupdata(2000,1,'gdp')
print('(b):')
prdata.lookupdata(2000,1,'pop')
print('(c):')
prdata.lookupdata(2020,1,'gdp')
print('(d):')
prdata.lookupdata(2000,6,'pop')
print('(e):')
prdata.calPerCapitaGDP(2000,1)
print('(f):')
flatdata=prdata.flattendata()

np.savetxt(op,flatdata,delimiter=',',fmt='%s')#保存展平后的结果

print('End!')
input('按回车键结束')

数据科学原理与数据处理 数据科学原理与数据处理 1 Python行业分析 通过Stack OverFlow专业网站的大数据统计,Python相关技术模块访问量最大的簇是数据科学相关,然后才是后台开发。 1.1 数据处理流程 1.2 数据科学岗位分析 2 数据分析好助手Jupyter notebook Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 m 阅读详情

相关推荐

NumPy:数值计算基础与高性能数组操作

NumPy 是 Python 科学计算的基础库,提供了高性能的多维数组对象和处理这些数组的工具。它是数据科学、机器学习和科学计算中不可或缺的组件,为 SciPy、Pandas 等库提供了基础支持。本文深入探讨 NumPy 的核心功能和高性能数组操作技巧。

熵数实验室 1082

NumPy数值计算基础实训

读取iris数据集中鸢尾花的萼片、花瓣长度数据(已保存为CSV格式),并对其进行排序、去重,并求出和、累积和、均值、标准差、方差、最小值、最大值。输出数据获取的数据看一下是否正确,为了方便查看每两组数据为一行。3.熟练掌握NumPy数组读写及数据统计分析。2.熟练掌握NumPy索引和切片;1.熟练掌握NumPy多维数组;每行三组数据输出是否正确。

qq_52331221的博客 4370

Python数据科学库安装指南:numpy, scipy, matplotlib, sklearn

scipy是一个开源的Python算法库和数学工具包,它被设计用于解决工程、物理、数学等领域中的科学计算问题。scipy的核心组件围绕着几个子库构建,为用户提供了一系列专门用于科学计算的工具和方法。scipy的基础结构包括但不限于以下核心子库::数值积分子库,提供了多种数值积分方法,包括常微分方程求解器。:优化算法子库,包含局部和全局优化算法,用于函数最小化或求解非线性方程。:线性代数子库,提供了高级线性代数运算功能,扩展了numpy的功能,如特征值分解、奇异值分解等。

weixin_42452483的博客 1355

python数据分析基础1_Pandas

1.pandas的数据结构 1).Series(序列):一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。 2).Time- Series:以时间为索引的Series。 3).DataFrame:二维的表格

shaguabufadai的博客 704

Python数据科学实战:利用Scipy和NumPy库

NumPy(Numerical Python)库是一个开源的Python扩展包,专门用于数值计算。该库自2005年开始开发,由社区支持,其核心是使用C语言编写的多维数组对象,为Python提供了一个高性能的多维数组对象以及相关工具和数学函数库。NumPy的特点包括:高效性:NumPy的核心是多维数组对象,它可以以高度优化的方式进行各种数组操作。广泛性:NumPy支持各种数据类型和维度的数组,适用于多种不同的计算场景。兼容性。

weixin_35756690的博客 997

Windows下CMake的下载与安装详解

目录一、CMake介绍二、CMake的下载与安装 一、CMake介绍 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。 二、CMake的下载与安装 CMake下载链接:https://cmake.org/download/。 下载最新稳定版即可(Latest Release): 下载完成后,单击“Next”按钮,在下图中勾选“I acce

Wendy的博客 8万+

python 绘图及可视化

1、注释以及在Subplot上绘图 除标准的图表对象之外,你可能还希望绘制一些自定义的注释(比如文本、箭头或其他图形等)。 注释可以通过text、arrow和annotate等函数进行添加。text可以将文本绘制在图表的指定坐标(x, y),还可以加上一些自定义格式: In [41]: ax.text(x, y, ‘Hello world!‘, family=‘monospace‘, f

wuguangbin1230的博客 4万+

颠覆性创新的测量框架与跨领域实证分析

颠覆性创新作为科技发展的重要驱动力,其核心在于实现知识体系的范式转换。从技术原理看,这类创新通常具备知识替代、网络重构和跨领域渗透三大特征,通过引用网络分析和文本挖掘等方法可量化评估其影响力。在工程实践中,CD指数、DI指数等测量工具帮助研究者识别具有突破潜力的成果,而深度学习等新兴技术进一步提升了评估精度。当前AI、半导体等领域的热门技术发展表明,模块化架构和产业协同能有效促进颠覆性创新。面对全球范围内创新颠覆性下降的趋势,优化科研评价体系、构建跨学科协作网络成为关键应对策略。

weixin_29735807的博客 323

Kaggle入门教程

此为中文翻译版 1:竞赛 我们将学习如何为Kaggle竞赛生成一个提交答案(submisson)。Kaggle是一个你通过完成算法和全世界机器学习从业者进行竞赛的网站。如果你的算法精度是给出数据集中最高的,你将赢得比赛。Kaggle也是一个实践你机器学习技能的非常有趣的方式。 Kaggle网站有几种不同类型的比赛。其中的预测一个就是预测在泰坦尼克号沉没的时候哪个乘客会成为幸存者。 在...

alice368517的博客 450

高通平台Android稳定性调试笔记:手把手教你用T32、Crash Utility分析Kernel Panic与RAM Dump

本文详细介绍了高通平台Android内核崩溃的分析方法,包括使用T32 Simulator和Crash Utility工具链解析Kernel Panic与RAM Dump。从环境配置、dump文件预处理到高级调试技巧,手把手教你如何定位和解决Android系统崩溃问题,特别适用于MSM/SA8155平台的开发者。

weixin_42543046的博客 528

Cursor赋能Qt C++:从环境配置到项目构建的AI开发新范式

本文详细介绍了如何利用Cursor工具链提升Qt C++开发效率,从智能环境配置到CMake项目构建的全流程实践。通过AI辅助编程、Qt生态优化及高级调试技巧,开发者可快速完成从传统开发到AI驱动的新范式转换,显著缩短项目搭建时间并提升代码质量。

weixin_30329623的博客 548

macrodata数据集在Python统计建模和计量经济学中的应用

macrodata.csv是一个示例数据集,通常用于统计分析和计量经济学中的教育和训练目的。这个数据集通常包括以下列:year(年份):表示数据观察的年份。quarter(季度):表示数据观察的季度(通常是1至4)。realgdp(实际国内生产总值):表示实际国内生产总值的数值,通常以美元为单位。realcons(实际消费支出):表示实际消费支出的数值,通常以美元为单位。realinv(实际投资支出):表示实际投资支出的数值,通常以美元为单位。

源代码杀手的博客 1257

设备树实践:从零构建一个嵌入式板级的设备树描述

本文详细介绍了如何从零开始为嵌入式Linux系统构建设备树(Device Tree),以i.MX6ULL处理器为例,涵盖硬件分析、设备树语法、外设配置及调试技巧。通过实践指导,帮助开发者掌握设备树编写,实现硬件与软件的高效对接,提升嵌入式开发效率。

plum99的博客 307

【Python 零基础入门】 Numpy

深入探索 Python 中的 Numpy:从基础数组操作、形状变化、高级功能到最佳实践。本指南为初学者提供了一个全面且深入的视角,助你迅速掌握这一强大的数值计算工具。

我是小白呀的博客 7529

SPSS线性混合模型实战:手把手复现一篇老年认知研究的统计结果(含代码)

本文详细介绍了如何使用SPSS线性混合效应模型复现老年认知研究的统计结果,涵盖数据准备、模型构建、结果解读及可视化全流程。特别针对重复测量数据分析,提供了SPSS菜单操作与语法编写的实用技巧,帮助研究者高效处理复杂数据并验证模型假设。

weixin_42562079的博客 518

【Matlab】多旋翼无人机视觉伺服跟踪控制程序

本文介绍了基于Matlab的多旋翼无人机视觉伺服跟踪控制程序开发方法。该系统采用视觉感知、坐标转换、伺服控制和仿真验证四个核心模块,通过HOG+SVM目标检测、Shi-Tomasi特征提取和PID双闭环控制算法实现动态目标跟踪。详细阐述了相机标定、目标检测、坐标转换及伺服控制等关键环节的Matlab实现代码,并进行了仿真验证。结果表明该系统在±0.1m的跟踪精度下可实现100Hz的实时处理,适用于室内外复杂场景。文章还提出了工程应用中的优化建议,为无人机视觉伺服系统的开发提供了完整的技术方案。

unber的博客 507

Python——NumPy数值计算基础

qq_44824574的博客 2985

网络安全与黑客攻防常见设备:前置机、跳板机、堡垒机与肉鸡

前置机、跳板机、堡垒机和肉鸡,这些看似冷僻的技术名词,实则是网络安全与黑客攻防战中的关键角色。它们有的守护着企业的数字Pltform,保卫网络安全;有的则成为黑客的跳板,游走于灰色地带。

网络技术联盟站 967

Python 与数据科学工具链入门:NumPy、Pandas、Matplotlib 快速上手

本文介绍了Python数据科学三大核心工具(NumPy、Pandas、Matplotlib)的快速入门方法。首先强调了工具链的重要性,指出NumPy提供高效的数值计算,Pandas简化数据处理,Matplotlib实现数据可视化。文章详细讲解了如何搭建开发环境(推荐Anaconda),并通过实际代码示例演示了NumPy数组操作、Pandas数据框处理以及数据清洗技巧。这些工具共同构成了机器学习项目的基础设施,掌握它们能显著提高数据分析和建模效率。

htw250056的博客 4396

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Python基础、数据科学入门NumPy(数值计算)、Pandas(数据处理)、Matplotlib(数据可视化)附视频教程

Python基础、数据科学入门NumPy(数值计算)、Pandas(数据处理)、Matplotlib(数据可视化)附视频教程

闲余知道 1512

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Python 数据科学三巨头:Pandas、NumPy 与 Matplotlib 基础理解

NumPy、Pandas和Matplotlib作为Python数据科学的三大核心库,各自在数值计算、数据处理和可视化方面发挥着重要作用:- NumPy提供了高效的数组操作和数学运算,是科学计算的基础- Pandas提供了灵活的数据结构和数据分析工具,简化了数据处理流程- Matplotlib提供了丰富的可视化功能,帮助我们直观地理解数据掌握这三个库,将为你的数据科学之旅打下坚实的基础。

2401_87959592的博客 1806

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

NumPy:Python的强大数值计算库

NumPy是Python中一款强大且广泛应用的数值计算库,它提供了高性能的多维数组对象和丰富的数学函数,使得在Python中进行科学计算和数据分析变得更加简单和高效。通过NumPy,我们可以方便地创建、操作和运算多维数组,并在科学计算、数据分析和图像处理等领域中发挥重要作用。无论是初学者还是专业人士,掌握NumPy都是进行Python数据科学和数值计算的重要基础。

爱编程的鱼的博客 1390

Python数据科学 之 NumPy系统讲解

The NumPy module of Python 未经许可不得转载 时间:2020年1月17日17:33:15 created by:Tower 使用JupyterNotebook编辑 0x00 前言(NumPy 的设计理念) 对于一个技术的使用或许记背几个常用的函数和基本用法便好,但要理解一个技术和工具,设计理念便是其内核之一,就是文章诗词的风骨,嚼起来才有味道,本部分介绍一些NumPy的优...

Hpbbs 686

使用 NumPy 和 SciPy 进行高效数值计算

NumPy提供了高效的数值计算能力,可以帮助我们解决矩阵操作、线性代数、统计分析和优化等问题。在你的项目中,是否遇到过需要进行复杂数值计算的场景?NumPy(Numerical Python)是一个提供高性能多维数组对象和操作工具的库,适用于快速的数值计算。SciPy 是基于 NumPy 构建的高级科学计算库,提供了更多功能模块,比如优化、积分、插值、信号处理等。在数据科学、机器学习和工程计算中,高效的数值计算是核心需求。NumPy 支持自动扩展较小的数组,以匹配更大的数组维度进行计算。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 1103

Python 中的 NumPy:数值计算基础

NumPy(Numerical Python)是一个用于科学计算的基础包。它提供了支持高效数组和矩阵操作的强大功能,同时还提供了大量的数学函数库。NumPy 是许多数据科学和机器学习库(如 Pandas、Scikit-Learn 和 TensorFlow)的基础,因此理解 NumPy 是掌握 Python 科学计算的关键。

weixin_55100524的博客 696

Python数据科学

本实验重点介绍了数据科学模块NumPy和SciPy,数据可视化Matplotlib和Seaborn,以及统计与分析模块Pandas。其中,NumPy负责数值计算、矩阵操作等;Matplotlib和Seaborn负责数据可视化;Pandas用于数据清洗等。SciPy负责常见的数学算法、插值、拟合等。

weixin_58199582的博客 1298
上一篇: 机器学习之乳腺癌预测
下一篇: 数据科学与python语言——Matplotlib数据可视化基础
943802606
博客等级 码龄6年 1万+粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值