xarray —— 在 NumPy 多维数组中加入变量名和坐标索引
xarray 是一个开源 Python 包,它可以使处理多维数组更加简单、高效并有趣。xarray 在原始类 NumPy 多维数组中引入了标签化的变量名称和坐标索引,实现了更直观、更简洁和更加不容易出错的能力。该软件包包括一个庞大且不断增长的域无关功能库,用于使用这些数据结构进行高级分析和可视化。xarray 灵感来自同为解决数据分析任务而诞生的 pandas。
多维数组(张量)是计算科学的重要组成部分,它们涉及广泛的领域,包括物理学、天文学、地球科学、生物信息学、工程学、金融学和深度学习。在 Python 中,NumPy 提供了用于处理原始多维数组的基本数据结构和 API,但是,真实世界的数据集通常不仅仅是原始数据,它们有标签,用于编码有关数组值如何映射到空间、时间等位置的信息。所以有有了 xarray 这个项目,它在原始类 NumPy 多维数组中引入了标签化的变量名称和坐标索引,实现了更直观、更简洁和更加不容易出错的能力。
特性:
- 通过变量名操作多维数组,比如:x.sum('time')
- 通过标签而不是位置选中值:x.loc['2014-01-01'] 或 x.sel(time='2014-01-01')
- 基于维度名称而不是形状在多维数组上进行数学运算矢量化
- 灵活的 groupby split-apply-combine 操作:x.groupby('time.dayofyear').mean()
- 基于坐标标签的数据库(例如 alignment),可以平滑地处理缺失值:x, y = xr.align(x, y, join='outer')
- 以Python字典的形式跟踪任意元数据:x.attrs

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 看完这篇你还能不懂 C 语言/C++ 内存管理?
C 语言内存管理指对系统内存的分配、创建、使用这一系列操作。在内存管理中,由于是操作系统内存,使用不当会造成毕竟麻烦的结果。本文将从系统内存的分配、创建出发,并且使用例子来举例说明内存管理不当会出现的情况及解决办法。 一、内存 在计算机中,每个应用程序之间的内存是相互独立的,通常情况下应用程序 A 并不能访问应用程序 B,当然一些特殊技巧可以访问,但此文并不详细进行说明。例如在计算机中,一个视频播放程序与一个浏览器程序,它们的内存并不能访问,每个程序所拥有的内存是分区进行管理的。 在计算机系统中,运行程序 A 将会在内存中开辟程序 A 的内存区域 1,运行程序 B 将会在内存中开辟程序 B 的内存区域 2,内存区域 1 与内存区域 2 之间逻辑分隔。 1.1 内存四区 在程序 A 开辟的内存区域 1 会被分为几个区域,这就是内存四区,内存四区分为栈区、堆区、数据区与代码区。 栈区指的是存储一些临时变量的区域,临时变量包括了局部变量、返回值、参数、返回地址等,当这些变量超出了当前作用域时将会自动弹出。该栈的最大存储是有大小的,该值固定,超过该大小将会造成栈溢出。 堆区指的是一个比较大的内...
- 下一篇
50 万行 Go 代码,美国一组织从 Python 2 迁移到 Go
美国教育非营利组织可汗学院(Khan Academy)方面透露,其已经用谷歌的 Go 编程语言完成了 50 万行代码,以取代此前用 Python 2 编写的后台服务器。根据介绍,可汗学院在其 Goliath 项目下实现了从 Python 2到 Go 的大转变。Goliath最初是使用 Python 2 实现的;从 2019 年开始,可汗学院逐步将其迁移到了 Go。 当我们开始 Goliath项目的时候,团队中没有人知道 Go,只是通过实验验证了 Go 是相较而言更好的选择。今天,我们所有的后端和全栈工程师都在写 Go,而我们对 Goliath 的渐进式交付也使我们跨越了一个重要的里程碑。现在有超过 50 万行的 Go代码在生产中运行。这似乎是对 Go 本身进行反思的一个好时机。 Python 2 于2020 年初到达EOL 阶段;鉴于此,可汗学院计划进行大规模迁移。对此,可汗学院的首席软件架构师 Kevin Dangoor曾表示,从 Python 2迁移到 3并不是一件容易的事。 他的团队曾认为 Kotlin 是一个有吸引力的选择,但最终还是选择了 Go;其工程师认为,和 Python...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8编译安装MySQL8.0.19