用于100GB+、TB级大型数据集构建【2】--计算包Xarray-主要数据类型

news2024/11/26 6:12:13

引言:
Xarray是一个性能出众的张量操作库,通常用于多通道的时间序列信号处理(比如传感器信号)。通常,在处理此类数据时,我认为您经常使用numpy的np.ndarray。但是,由于np.ndarray是一个简单的矩阵(或张量),因此需要保留其他的关键字信息,来避免在复杂高维数据处理时可能出现的复杂的索引操作导致的错误。

”However, real-world datasets are usually more than just raw numbers; they have labels which encode information about how the array values map to locations in space, time, etc.“
这个官网介绍解决的numpy用户的痛点问题也很贴切…

在这里插入图片描述


用于100GB+、TB级大型数据集构建【2】--计算包Xarray-主要数据类型

  • 1. Xarray包安装
  • 2. 主要数据类型
    • 2.1 xr.DataArray
    • 2.2 xr.Dataset
  • 参考资料

1. Xarray包安装

2. 主要数据类型

2.1 xr.DataArray

  • 一个简单例子
    一个多维数据,包括一个有序字典类型coords(它是一对轴值和标签),和一个有序字典类型attrs(用于存储其他信息)。
import xarray as xr
data = xr.DataArray(np.random.randn(2, 3))
print(data)

输出打印信息如下:

<xarray.DataArray (dim_0: 2, dim_1: 3)>
array([[-0.06620569, -0.01929077,  1.44195805],
       [-0.14480076,  0.97707183, -0.22340199]])
Dimensions without coordinates: dim_0, dim_1
  • 关于coords
    以下是如何创建二维xr.DataArray的示例,该数组具有时间和值维度的温度数据坐标。
import xarray as xr
import numpy as np

# Create a 2D numpy array with temperature data
temp_data = np.array([[25.0, 26.2, 24.8], [28.5, 27.6, 26.4], [23.7, 25.1, 26.8]])

# Create coordinate arrays for time and value dimensions
time_coords = np.array(['2023-08-01', '2023-08-02', '2023-08-03'])
value_coords = np.array(['V1', 'V2', 'V3'])

# Create an xarray DataArray object with the temperature data and coordinates
temp_data_array = xr.DataArray(temp_data, dims=('time', 'value'), coords={'time': time_coords, 'value': value_coords})

# Print the DataArray object
print(temp_data_array)

结果如下:

array([[25. , 26.2, 24.8],
       [28.5, 27.6, 26.4],
       [23.7, 25.1, 26.8]])
Coordinates:
  * time     (time) <U10 '2023-08-01' '2023-08-02' '2023-08-03'
  * value    (value) <U2 'V1' 'V2' 'V3'

2.2 xr.Dataset

一个对象,其中包含多个xr.DataArrays。它可以有多个轴,并保留有关每个数据对应于哪个轴的信息。

还是以天气数据为例子,以不同经度纬度地方的天气数据为 待存储数据

import xarray as xr
import numpy as np

# Create a 3D numpy array with temperature data
 # Generate a tensor with shape [3, 4, 5] and elements from [20, 30]
tensor = np.random.uniform(low=20.0, high=30.0, size=(3, 4, 5))
# Round the tensor to one decimal point
temp_data = np.round(tensor, decimals=1)

# Create coordinate arrays for time, latitude, and longitude dimensions
time_coords = np.array(['2023-08-01', '2023-08-02', '2023-08-03'])
lat_coords = np.array([40.0, 41.0, 42.0, 43.0])
lon_coords = np.array([-110.0, -109.0, -108.0, -107.0, -106.0])

# Create an xarray DataArray object with the temperature data and associated coordinates
temp_data_array = xr.DataArray(temp_data, dims=('time', 'lat', 'lon'), coords={'time': time_coords, 'lat': lat_coords, 'lon': lon_coords})

# Create a new xarray Dataset object with the temperature data array and associated metadata
temp_dataset = xr.Dataset({'temperature': temp_data_array})

# Print the Dataset object
print(temp_dataset)

结果如下:

<xarray.Dataset>
Dimensions:      (time: 3, lat: 4, lon: 5)
Coordinates:
  * time         (time) <U10 '2023-08-01' '2023-08-02' '2023-08-03'
  * lat          (lat) float64 40.0 41.0 42.0 43.0
  * lon          (lon) float64 -110.0 -109.0 -108.0 -107.0 -106.0
Data variables:
    temperature  (time, lat, lon) float64 0.2583 0.9802 ... 0.02329 0.1555

在上面这个例子中,我们就成功存储了一个张量数据,每个通道是某一天不同经纬度地方的天气数据:

print(temp_data[0])
[[22.1 27.8 23.8 24.9 26.8]
 [25.7 24.7 26.3 22.3 24.3]
 [21.9 27.  23.3 29.7 24.4]
 [21.6 27.4 28.1 23.2 27.7]]

参考资料

【1】Xarray官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/875863.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[保研/考研机试] KY103 2的幂次方 上海交通大学复试上机题 C++实现

题目链接&#xff1a; KY103 2的幂次方 https://www.nowcoder.com/share/jump/437195121691999575955 描述 Every positive number can be presented by the exponential form.For example, 137 2^7 2^3 2^0。 Lets present a^b by the form a(b).Then 137 is present…

Linux设备树详解

Linux 设备树详解 Linux 操作系统早期是针对个人电脑设备而开发的操作系统&#xff0c;而个人电脑处理器产商较为单一&#xff08;例如只有 Intel&#xff0c;AMD&#xff09;同时个人电脑产商均使用 Intel 或 AMD 制造的处理器&#xff0c;业界形成了统一的总线/硬件接口标准…

稀疏感知图像和体数据恢复的系统对象研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

SpringCloud微服务之间如何进行用户信息传递(涉及:Gateway、OpenFeign组件)

目录 1、想达到的效果2、用户信息在微服务之间传递的两种途径3、用RuoYi-Cloud为例进行演示说明&#xff08;1&#xff09;网关将用户信息写在请求头中&#xff08;2&#xff09;业务微服务之间通过OpenFeign进行调用&#xff0c;并且将用户信息写在OpenFeign准备的请求头中&am…

02:STM32--EXTI外部中断

目录 一:中断 1:简历 2:AFIO 3:EXTI ​编辑 4:NVIC基本结构 5:使用步骤 二:中断的应用 A:对外式红外传感计数器 1:连接图​编辑 2:函数介绍 3:硬件介绍 4:计数代码 B;旋转编码计数器 1:连接图 2:硬件介绍 3:旋转编码器代码: 一:中断 1:简历 中断&#xff1a;在主程…

硬件产品经理:从入门到精通(新书发布)

目录 简介 新书 框架内容 相关课程 简介 在完成多款硬件产品从设计到推向市场的过程后。 笔者于2020年开始在产品领域平台输出硬件相关的内容。 在这个过程中经常会收到很多读者的留言&#xff0c;希望能推荐一些硬件相关的书籍或资料。 其实&#xff0c;笔者刚开始做硬…

电力能源管理系统在生物制药行业的应用

安科瑞 华楠 摘要&#xff1a;根据生物制品类企业的电力能源使用特点&#xff0c;制定了符合公司实际情况的能源管理系统&#xff0c;介绍了该系统的架构及其在企业的应用情况&#xff0c;提升了公司能源数据的实时监控能力&#xff0c;优化了公司能源分配&#xff0c;降低了公…

React Native Expo项目,复制文本到剪切板

装包&#xff1a; npx expo install expo-clipboard import * as Clipboard from expo-clipboardconst handleCopy async (text) > {await Clipboard.setStringAsync(text)Toast.show(复制成功, {duration: 3000,position: Toast.positions.CENTER,})} 参考链接&#xff1a…

接口自动化测试,Fiddler使用抓包辅助实战,一篇彻底打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、快捷设置&…

GaussDB数据库SQL系列-UNION UNION ALL

目录 一、前言 二、GaussDB UNION/UNION ALL 1、GaussDB UNION 操作符 2、语法定义 三、GaussDB实验示例 1、创建实验表 2、合并且除重(UNION) 3、合并不除重&#xff08;UNION ALL&#xff09; 4、合并带有WHERE子句SQL结果集&#xff08;UNION ALL&#xff09; 5、…

ansible的playbook剧本

playbook剧本 PlayBook1.playbooks 本身由以下各部分组成2.示例&#xff1a;3.运行playbook补充参数&#xff1a; 4.定义、引用变量5.指定远程主机sudo切换用户6.when条件判断7.迭代8.Templates 模块1.先准备一个以 .j2 为后缀的 template 模板文件&#xff0c;设置引用的变量2…

9.3.2.2网络原理(传输层TCP)

TCP全部细节参考RFC标准文档 一.TCP特点: 有连接,可靠传输,面向字节流,全双工. 二.TCP数据报: 1.端口号是传输层的重要概念. 2.TCP的报头是变长的(UDP是固定的8字节),大小存在4位首部长度中,用4个bit位(0~15)表示长度单位是4字节.(TCP报头最大长度是60字节,前面20字节是固定…

VR时代真的到来了?

业界对苹果的期待是&#xff0c;打造一台真正颠覆性的&#xff0c;给头显设备奠定发展逻辑底座的产品&#xff0c;而实际上&#xff0c;苹果只是发布了一台更强大的头显。 大众希望苹果回答的问题是“我为什么需要一台AR或者VR产品&#xff1f;”&#xff0c;但苹果回答的是“…

数据结构—图的应用

6.4图的应用 概念回顾—生成树 生成树&#xff1a;所有顶点均由边连接在一起&#xff0c;但不存在回路的图。 一个图可以有许多棵不同的生成树、含有n个顶点 n-1 条边的图不一定是生成树所有生成树具有以下共同特点 生成树的顶点个数与图的顶点个数相同&#xff1b;生成树是图的…

【正点原子STM32连载】第四章 APM32初体验摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第四…

达梦数据库(dm8) Centos7 高可用集群

国产数据库-达梦 一、环境详情二、Centos7 参数优化&#xff08;所有节点&#xff09;三、创建用户&#xff08;所有节点&#xff09;四、开始安装&#xff08;所有节点&#xff09;五、服务注册启动 当前安装&#xff1a;在指定版本环境下 测试&#xff0c;仅供参考 官网描述&…

ad+硬件每日学习十个知识点(31)23.8.11 (23ad的value,AD的mysql数据库)

文章目录 1.ad的sch库&#xff08;23版本的value放在下面了&#xff09;2.安装mysql数据库 1.ad的sch库&#xff08;23版本的value放在下面了&#xff09; 答&#xff1a; 2.安装mysql数据库 https://www.bilibili.com/video/BV1EJ411D7dd/?spm_id_from333.337.search-card.…

Redis使用Lua脚本和Redisson来保证库存扣减中的原子性和一致性

文章目录 前言1.使用SpringBoot Redis 原生实现方式2.使用redisson方式实现3. 使用RedisLua脚本实现3.1 lua脚本代码逻辑 3.2 与SpringBoot集成 4. Lua脚本方式和Redisson的方式对比5. 源码地址6. Redis从入门到精通系列文章7. 参考文档 前言 背景&#xff1a;最近有社群技术交…

免费试用!谷露人才Mapping2.0上线,组织架构直链人才库速来体验

关注“谷露软件”公众号&#xff0c;后台回复“人才mapping”即可立刻免费试用。 点击去免费试用 点击去免费试用 谷露软件&#xff08;Gllue Software&#xff09;成立于2012年&#xff0c;目前已经成为中国领先的招聘管理系统和招聘解决方案供应商。谷露旗下涵盖猎头版和企业…

基于ssm+vue的新能源汽车在线租赁管理系统源码和论文PPT

基于ssmvue的新能源汽车在线租赁管理系统源码和论文PPT010 开发环境&#xff1a; 开发工具&#xff1a;idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具&#xff1a;navcat,小海豚等 开发技术&#xff1a;java ssm tomcat8.5 摘 要 随着科学技术的飞速发展&#xff0…