当前位置: 首页 > news >正文

一个域名一个主机可以做两个网站吗/湖南省最新疫情

一个域名一个主机可以做两个网站吗,湖南省最新疫情,新野seo公司,建设工程教育网建设工程类的考试辅导网站Python NumPy 数据分析:处理复杂数据的高效方法 文章目录 Python NumPy 数据分析:处理复杂数据的高效方法一 数据来源二 获取指定日期数据三 获取指定行列数据四 求和计算五 比例计算六 平均值和标准差七 完整代码示例八 源码地址 本文详细介绍了如何使用…

Python NumPy 数据分析:处理复杂数据的高效方法

文章目录

  • Python NumPy 数据分析:处理复杂数据的高效方法
      • 一 数据来源
      • 二 获取指定日期数据
      • 三 获取指定行列数据
      • 四 求和计算
      • 五 比例计算
      • 六 平均值和标准差
      • 七 完整代码示例
      • 八 源码地址

本文详细介绍了如何使用 Python 和 NumPy 对复杂数据进行高效的数据分析。通过从 Kaggle 获取的公开数据集,演示了如何读取 CSV 文件、提取特定日期和字段的数据,并进行数据的统计与分析。本文展示了使用 NumPy 进行数据操作的便捷方式,如通过索引获取指定行列数据,计算累计数值和新增长的总数,还讲解了如何计算比率、平均值、标准差等关键统计数据。文章还包括完整的代码示例,帮助读者轻松上手进行复杂数据的分析任务。

导入 NumPy

import numpy as np

一 数据来源

数据来源:Kaggle 上的公开数据集 ,读取数据如下:

def get_result():with open("csv/your_data.csv", "r", encoding="utf-8") as f:data = f.readlines()your_data = {"date": [],"data": [],"header": [h for h in data[0].strip().split(",")[1:]]}for row in data[1:]:split_row = row.strip().split(",")your_data["date"].append(split_row[0])your_data["data"].append([float(n) for n in split_row[1:]])return your_data

数据太多可以先看少部分数据,如下:

    # 获取少数行数据print(your_data["data"][:2])print(your_data["date"][:5])

二 获取指定日期数据

date_idx = your_data["date"].index("2020-02-03")
print("日期->索引转换:", date_idx)data = np.array(your_data["data"])for header, number in zip(your_data["header"], data[date_idx]):print(header, ":", number)

三 获取指定行列数据

# 获取指定行列数据
row_idx = your_data["date"].index("2020-01-24")  # 获取日期索引
column_idx = your_data["header"].index("Confirmed")  # 获取标题的索引
confirmed0124 = data[row_idx, column_idx]
print("截止 2020-01-24 的累积数:", confirmed0124)row_idx = your_data["date"].index("2020-07-23")  # 获取日期索引
column_idx = your_data["header"].index("New deaths")  # 获取标题的索引
result = data[row_idx, column_idx]
print("截止 2020-07-23 的数:", result)

四 求和计算

# 总增长数
row1_idx = your_data["date"].index("2020-01-25")
row2_idx = your_data["date"].index("2020-07-22")
new_cases_idx = your_data["header"].index("New cases")# 注意要 row1_idx + 1 得到从 01-25 这一天的新增
# row2_idx + 1 来包含 7 月 22 的结果
new_cases = data[row1_idx + 1: row2_idx + 1, new_cases_idx]
# print(new_cases)
overall = new_cases.sum()
print("总共:", overall)

五 比例计算

# 比例计算
new_cases_idx = your_data["header"].index("New cases")
new_recovered_idx = your_data["header"].index("New recovered")not_zero_mask = data[:, new_recovered_idx] != 0
ratio = data[not_zero_mask, new_cases_idx] / data[not_zero_mask, new_recovered_idx]

代码中出现 nannannumpy 中表示的是 Not a Number,说明计算有问题,代码 not_zero_mask = data[:, new_recovered_idx] != 0 避免除数为 0 的情况。

六 平均值和标准差

# 平均值, 标准差
ratio_mean = ratio.mean()
ratio_std = ratio.std()
print("平均比例:", ratio_mean, ";标准差:", ratio_std)

平均比例 和 标准差计算。

七 完整代码示例

# This is a sample Python script.# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.
import numpy as np# 读取数据
def get_result():with open("csv/your_data.csv", "r", encoding="utf-8") as f:data = f.readlines()your_data = {"date": [],"data": [],"header": [h for h in data[0].strip().split(",")[1:]]}for row in data[1:]:split_row = row.strip().split(",")your_data["date"].append(split_row[0])your_data["data"].append([float(n) for n in split_row[1:]])return your_datadef print_hi(name):# Use a breakpoint in the code line below to debug your script.print(f'Hi, {name}')  # Press ⌘F8 to toggle the breakpoint.your_data = get_result()# 获取少数行数据print(your_data["data"][:2])print(your_data["date"][:5])# 获取指定日期数据date_idx = your_data["date"].index("2020-02-03")print("2020-02-03 日期->索引转换:", date_idx)data = np.array(your_data["data"])for header, number in zip(your_data["header"], data[date_idx]):print(header, ":", number)# 获取指定行列数据row_idx = your_data["date"].index("2020-01-24")  # 获取日期索引column_idx = your_data["header"].index("Confirmed")  # 获取标题的索引confirmed0124 = data[row_idx, column_idx]print("截止 2020-01-24 的累积数:", confirmed0124)row_idx = your_data["date"].index("2020-07-23")  # 获取日期索引column_idx = your_data["header"].index("New deaths")  # 获取标题的索引result = data[row_idx, column_idx]print("截止 2020-07-23 的数:", result)# 求和计算row1_idx = your_data["date"].index("2020-01-25")row2_idx = your_data["date"].index("2020-07-22")new_cases_idx = your_data["header"].index("New cases")# 注意要 row1_idx + 1 得到从 01-25 这一天的新增# row2_idx + 1 来包含 7 月 22 的结果new_cases = data[row1_idx + 1: row2_idx + 1, new_cases_idx]# print(new_cases)overall = new_cases.sum()print("总共:", overall)# 比例计算new_cases_idx = your_data["header"].index("New cases")new_recovered_idx = your_data["header"].index("New recovered")not_zero_mask = data[:, new_recovered_idx] != 0ratio = data[not_zero_mask, new_cases_idx] / data[not_zero_mask, new_recovered_idx]# 平均值, 标准差ratio_mean = ratio.mean()ratio_std = ratio.std()print("平均比例:", ratio_mean, ";标准差:", ratio_std)if __name__ == '__main__':print_hi('数据分析')# See PyCharm help at https://www.jetbrains.com/help/pycharm/

复制粘贴并覆盖到你的 main.py 中运行,运行结果如下。

Hi, 数据分析
[[555.0, 17.0, 28.0, 510.0, 0.0, 0.0, 0.0, 3.06, 5.05, 60.71, 6.0], [654.0, 18.0, 30.0, 606.0, 99.0, 1.0, 2.0, 2.75, 4.59, 60.0, 8.0]]
['2020-01-22', '2020-01-23', '2020-01-24', '2020-01-25', '2020-01-26']
2020-02-03 日期->索引转换: 12
Confirmed : 19887.0
Deaths : 426.0
Recovered : 604.0
Active : 18857.0
New cases : 3100.0
New deaths : 64.0
New recovered : 145.0
Deaths / 100 Cases : 2.14
Recovered / 100 Cases : 3.04
Deaths / 100 Recovered : 70.53
No. of countries : 25.0
截止 2020-01-24 的累积数: 941.0
截止 2020-07-23 的数: 9966.0
总共: 15247309.0
平均比例: 7.049556348053241 ;标准差: 19.094025710450307

八 源码地址

代码地址:

国内看 Gitee 之 numpy/数据分析.py

国外看 GitHub 之 numpy/数据分析.py

引用 莫烦 Python

相关文章:

Python NumPy 数据分析:处理复杂数据的高效方法

Python NumPy 数据分析:处理复杂数据的高效方法 文章目录 Python NumPy 数据分析:处理复杂数据的高效方法一 数据来源二 获取指定日期数据三 获取指定行列数据四 求和计算五 比例计算六 平均值和标准差七 完整代码示例八 源码地址 本文详细介绍了如何使用…...

【Preference Learning】Reasoning with Language Model is Planning with World Model

arxiv: https://arxiv.org/abs/2305.14992 问题背景:当前LLM推理受到几个关键因素的限制: (1)LLM缺乏世界模型(一种人类就有的对环境的心理表征,可以模拟行动以及活动对外部世界状态的影响)去…...

OJ在线评测系统 后端基础部分开发 完善CRUD相关接口

完善相关接口 判斷编程语言是否合法 先从用户的请求拿到Language package com.dduo.dduoj.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dduo.dduoj…...

计算机网络--TCP、UDP抓包分析实验

计算机网络实验 目录 实验目的 实验环境 实验原理 1、UDP协议 2、TCP协议 实验具体步骤 实验目的 1、掌握使用wireshark工具对UDP协议进行抓包分析的方法,掌握UDP协议的报文格式,掌握UDP协议校验和的计算方法,理解UDP协议的优缺点&am…...

FreeRTOS的中断管理

前言 FreeRTOS的任务有优先级,MCU的硬件中断有中断优先级,这是两个不同的概念,FreeRTOS的任务管理要用到硬件中断,使用FreeRTOS时候也可以使用硬件中断,但是硬件中断ISR的设计要注意一些设计原则,在本节中我…...

JS加密=JS混淆?(JS加密、JS混淆,是一回事吗?)

JS加密、JS混淆,是一回事吗? 是的!在国内,JS加密,其实就是指JS混淆。 1、当人们提起JS加密时,通常是指对JS代码进行混淆加密处理,而不是指JS加密算法(如xor加密算法、md5加密算法、…...

hive-拉链表

目录 拉链表概述缓慢变化维拉链表定义 拉链表的实现常规拉链表历史数据每日新增数据历史数据与新增数据的合并 分区拉链表 拉链表概述 缓慢变化维 通常我们用一张维度表来维护维度信息,比如用户手机号码信息。然而随着时间的变化,某些用户信息会发生改…...

高并发内存池(六):补充内容

目录 有关大于256KB内存的申请和释放处理方法 处理大于256KB的内存申请 补充内容1 补充内容2 补充内容3 处理大于256KB的内存释放 新增内容1 新增内容2 测试函数 使用定长内存池替代new 释放对象时不传对象大小 补充内容1 补充内容2 补充内容3 补充内容4 测试…...

高性能存储 SIG 月度动态:优化 fuse 提升 AI 存储接入能力,erofs 工具发布新版本

本次月报综合了 SIG 在 7、8 两个月的工作进展,包含多项新特性、优化、Bugfix 等。 SIG 整体进展 fuse 支持 failover,并优化 background 读写公平性,提升 AI 存储接入场景的能力。 erofs page cache 共享特性已发到上游社区,re…...

2024 年最新 Protobuf 结构化数据序列化和反序列化详细教程

Protobuf 序列化概述 Protobuf(Protocol Buffers)是由Google开发的一种语言中立、平台中立、可扩展的序列化结构数据的方法。它用于在不同系统之间高效地交换数据。Protobuf使用定义文件(.proto)来描述数据结构,并通过…...

【小程序】微信小程序课程 -4 项目实战

目录 1、 效果图 2、创建项目 2.1 创建小程序端 2.1.1 先创建纯净项目 2.1.2 删除components 2.1.4 删除app.json红色部分 2.1.5 删除index.json红色部分 2.1.6 删除index.wxss全部内容 2.1.7 删除index.wxml全部内容 2.1.8 app.json创建4个页面 2.1.9 app.json添加…...

【期刊】论文索引库-SCI\SSCI\IE\南大核心\北大核心\CSCD等

外文期刊检索 SCI SCI即《科学引文索引》(Science Citation Index),是由美国科学信息研究所(Institute for Scientific Information)创建于1961年,收录文献的作者、题目、源期刊、摘要、关键词,不仅可以从文献引证的角度评估文章的学术价值,还可以迅速方便地组建研究课…...

开源链动 2+1 模式 S2B2C 商城小程序:社交电商团队为王的新引擎

摘要:本文深入探讨在社交电商领域中,团队的重要性以及如何借助开源链动 21 模式 S2B2C 商城小程序,打造具有强大竞争力的团队,实现个人价值与影响力的放大,创造被动收入,迈向财富自由之路,同时为…...

使用Fiddler Classic抓包工具批量下载音频资料

1. 通过F12开发者工具,下载音频文件 浏览器打开音频列表->F12快捷键->网络->媒体,播放一个音频文件,右边媒体下生成一个音频文件,右击“在新标签页中打开”,可以下载这个音频文件。 2.通过Fiddler Classic抓…...

QT开发:基于Qt实现的交通信号灯模拟器:实现一个带有倒计时功能的图形界面应用

介绍 本文将介绍如何使用Qt框架实现一个简单的交通信号灯控制程序。本程序包括一个图形界面,显示红、黄、绿三色信号灯,并通过定时器控制信号灯的切换。同时,我们还将实现一个带有按钮的界面,用于展示信号灯的状态。 1. 安装Qt开…...

【编程基础知识】网络I/O模型详解:从阻塞到异步

引言 网络I/O模型是网络编程的核心,它们决定了应用程序如何进行读写操作以与网络进行数据交换。了解不同的网络I/O模型对于设计高效、可扩展的网络应用程序至关重要。 一、阻塞I/O(Blocking I/O) 1. 定义 阻塞调用:当应用程序…...

yolo自动化项目实例解析(六)自建UI(主窗口、预览窗口)

前面我们大致把各个代码块梳理出来了,但是还是不知道从那块开始,我们这里主要先通过ui页面的元素去推理整个执行过程,我们首先需要知道ui功能里面有那些组件 qt设计师基础控件 Qt Designer 是一个图形界面设计工具,用于创建 Qt 应…...

Unity优质教程分类汇总 【持续更新中】

以下收录的均为作者自己看过的觉得比较好的教程 基础 Unity入门: https://www.bilibili.com/video/BV1HX4y1V71E?p13 生命周期 https://docs.unity.cn/cn/2022.3/uploads/Main/monobehaviour_flowchart.svg https://zhuanlan.zhihu.com/p/551294000 编程技巧…...

真正掌握left join on 和 where 的差别

总结 用 where 是先连接然后再筛选用 on 是先筛选再连接数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用left jion时,on和where条件的区别如下: on条件是在生成临时表…...

神经网络在多分类问题中的应用

作者简介:热爱数据分析,学习Python、Stata、SPSS等统计语言的小高同学~个人主页:小高要坚强的博客当前专栏:Python之机器学习本文内容:神经网络在多分类问题中的应用作者“三要”格言:要坚强、要努力、要学习 目录 1. 引言 2.数据构造 3.划分数据集 4.神经网络实现多…...

nginx的安装和使用

源码安装 1.环境准备:卸载其他方式安装的web应用,防止端口冲突 2.下载nginx源码包 wget https://nginx.org/download/nginx-1.20.2.tar.gz 3.源码编译安装 yum install -y gcc pcre-devel zlib-devel #安装依赖包 useradd -M -s /sbin/nologin ngi…...

js采用覆盖键、覆盖鼠标滑动事件实现禁止网页通过 ctrl + +/- 和 ctrl + 滚轮 对页面进行缩放

一、兼容电脑端的禁止通过 ctrl /- 和 ctrl 滚轮 对页面进行缩放 const keyCodeMap {// 91: true, // command61: true,107: true, // 数字键盘 109: true, // 数字键盘 -173: true, // 火狐 - 号187: true, // 189: true, // -};二、覆盖ctrl||command ‘’/‘-’ // 覆…...

某客户Oracle RAC无法启动故障快速解决

某日,9:50左右接到好友协助需求,某个客户Oracle RAC无法启动,并发过来一个报错截图,如下: 和客户维护人员对接后,远程登录服务端进行故障分析。 查看hosts信息,首先进行心跳测试,测…...

【计算机网络 - 基础问题】每日 3 题(二十八)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...

探索甘肃非遗:Spring Boot网站开发案例

1 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前&#…...

产品管理- 互联网产品(6):产品测试

可用性测试 招募有代表性用户作为测试代表参与者,评估某产品符合特定可用性及符合程度。以具有代表性的用户为测试样本。 测试中多关注用户表情与动作。多鼓励与测试的用户更多的操作以用户角度发现问题。同时要做好询问工作,耐心聆听用户的意见&#x…...

奖金高达 110 万元,Spatial Joy 2024 全球 AR 应用开发大赛启动

今年是AR应用开发大赛第三届,恰逢Rokid成立十周年,我们推出全新的大赛品牌“Spatial Joy”,引领开发者享受开发乐趣,为其打造充满挑战和惊喜的开发之旅,逐渐成为空间计算时代全球最大AR应用开发大赛。回顾大赛发展&…...

git add成功后忘记commit的文件丢了?

本文目标:开发人员,在了解git fsck命令用法的条件下,进行git add成功但由于误操作导致丢失的文件找回,达到找回丢失文件的程度。 文章目录 1 痛点2 解决方案3 总结/练习 1 痛点 开发过程中,分支太多(基线分…...

Python Web 开发中的DevOps 实践与自动化运维

Python Web 开发中的DevOps 实践与自动化运维 📚 目录 🔧 基础设施即代码(IaC) 使用 Terraform、AWS CloudFormation 实现基础设施即代码使用 Python 进行云服务资源的管理与自动化配置编写和部署基础设施的自动化脚本 &#x1f…...

探索私有化聊天软件:即时通讯与音视频技术的结合

在数字化转型的浪潮中,企业对于高效、安全、定制化的通讯解决方案的需求日益迫切。鲸信,作为音视频通信技术的佼佼者,凭借其强大的即时通讯与音视频SDK(软件开发工具包)结合能力,为企业量身打造了私有化聊天…...