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

引言:
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.hqwc.cn/news/66869.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UML-类图和对象图

目录 类图概述&#xff1a; 1.类: 2.属性: 3.类的表示&#xff1a; 4.五种方法: 类图的关系&#xff1a; 1.关联 2.聚合 3.组合 4.依赖 5.泛化 6.实现 对象图概述&#xff1a; 1. 对象图包含元素: 2. 什么是对象 3.对象的状态可以改变: 4.对象的行为 5.对象标…

Nginx之lnmp架构

目录 一.什么是LNMP二.LNMP环境搭建1.Nginx的搭建2.安装php3.安装数据库4.测试Nginx与PHP的连接5.测试PHP连接数据库 一.什么是LNMP LNMP是一套技术的组合&#xff0c;Llinux&#xff0c;Nnginx&#xff0c;Mmysql&#xff0c;Pphp 首先Nginx服务是不能处理动态资源请求&…

OpenSource - 安全的信创开源CMS_JPress

文章目录 官方网址功能介绍文章模块页面模块表单模块附件管理用户相关系统相关 特点模板插件用户角色和权限微信多站点SEO其他 官方网址 https://gitee.com/JPressProjects/jpress http://www.jpress.cn/ 功能介绍 一个使用 Java 开发的、类似 WordPress 的产品&#xff0c;支…

【多音音频测试信号】具有指定采样率和样本数的多音信号,生成多音信号的相位降低波峰因数研究(Matlab代码实现)

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

Android模板设计模式之 - 构建整个应用的BaseActivity

1. 模式介绍 模式的定义 定义一个操作中的算法的框架&#xff0c;而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模式的使用场景 1.多个子类有公有的方法&#xff0c;并且逻辑基本相同时。 2.重要、复杂的算法&#xff0c;可…

培训报名小程序-用户注册

目录 1 创建数据源2 注册用户3 判断用户是否注册4 完整代码总结 我们的培训报名小程序&#xff0c;用户每次打开时都需要填写个人信息才可以报名&#xff0c;如果用户多次报名课程&#xff0c;每次都需要填写个人信息&#xff0c;比较麻烦。 本篇我们就优化一下功能&#xff0c…

设备管理系统能起到什么作用?

在现代工业运营中&#xff0c;设备的高效管理和维护对于保障生产稳定运行和提升企业竞争力至关重要。而设备管理系统作为一种关键工具&#xff0c;能够极大地提高企业的生产效率和设备维护的准确性。本文将深入探讨设备管理系统的作用&#xff0c;以PreMaint设备数字化平台为例…

C++专题--标准模板库STL

c专题-标准模板库STL 1 标准模板库概述 2 序列式容器 2.1 vector 容器 2.2 deque 容器 2.3 list 容器 3 关联式容器 4 无序关联容器 5 容器适配器 5.1 STL容器适配器的种类 5.2 stack容器适配器 5.3 queue容器适配器 5.3 priority_queue容器适配器…

【linux】安装pytorch3d

写在开头 不要看网上的博客安装&#xff0c;直接参考官方安装文档去安装。 坑 坑1&#xff1a;安装pytorch3d后torch.cuda用不了 使用下面的命令安装后 conda install pytorch3d会提示安装下面的包&#xff0c;注意pytorch和torchvision都是cpu版本的&#xff0c;这样就会…

如何让你的图片服务也有类似OSS的图片处理功能

原文链接 前言 有自己机房的公司一般都有一套存储系统用于存储公司的图片、视频、音频、文件等数据&#xff0c;常见的存储系统有以NAS、FASTDFS为代表的传统文件存储&#xff0c;和以Minio为代表的对象存储系统&#xff0c;随着云服务的兴起很多公司逐渐将数据迁移到以阿里云…

SQL Server2019安装后使用SQL Server身份验证登录失败

错误情况 今天在电脑安装SQL Server2019和SMMS&#xff0c;安装过程一切顺利&#xff0c;但是在使用SMMS连接数据库时出现了异常。使用"Window 身份验证"登录时正常&#xff0c;但是如果改为使用"SQL Server 身份验证"登录时却连接失败&#xff01; 解决方…

【LeetCode每日一题】——41.缺失的第一个正数

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 哈希表 二【题目难度】 困难 三【题目编号】 41.缺失的第一个正数 四【题目描述】 给你一个…