问题标签 [xarray]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何将带有复合标头的 .csv 读入 xarray DataArray(使用 pandas)
给定具有以下结构的数据集:
以 .csv 形式给出:
注意:缺少某些值,并非所有变量都可用于所有位置,时间戳可用于每条记录,列可能出现乱序,但时间戳可靠地是第一列。我不确定所有这些方面都与最佳解决方案相关,但它们确实存在。
我可以轻松设置一个 xarray 三维数组,它允许我通过时间戳、位置、变量名访问值。它在确定唯一的位置名称后循环遍历位置名称,按位置过滤数据并一次添加一个位置的结果。但我想知道 pythonic 和,因为没有更好的词,pandastic 解决方案会是什么样子?
问题:是否有一些紧凑而有效的方法,可能使用 pandas 和 xarray,将这个数据集或任何类似的数据集(具有不同的变量和位置名称)从 .csv 加载到像 xarray DataArray 这样的 3d 数组中?
time-series - xarray 和每月或每年平均的 5 年平均值
我需要根据月平均或年平均时间序列数据计算 5 年平均数据(不是滚动平均,而是日历年)。搜索 xarray 文档后,我看不到一个简单的方法。有没有人有做这种平均的方法?
谢谢你!
python - 从元数据 + 值创建 xarray 数据集的简单方法?
我正在处理单细胞 RNA 测序数据,这些数据是最近 10k-100k 个样本(cell
s)x 20kgene
个稀疏值的特征(s),还包括很多元数据,例如组织(“大脑”与“肝脏” “) 起源。元数据是 ~10-100 列,我存储为pandas.DataFrame
. 现在,我正在xarray.DataSets
通过 dict-ifiying 元数据并将它们添加为坐标来制作。因为我在笔记本之间复制片段,所以它看起来很笨重且容易出错。有没有更简单的方法?
编辑:
为了显示一些示例数据,这里是cell_metadata.head().to_csv()
:
和counts.iloc[:5, :20].to_csv()
回复:pandas.DataFrame.to_xarray()
- 这非常慢,对我来说将这么多数字和分类数据编码为 100 级 MultiIndex 似乎很奇怪。那,每次我尝试使用MultiIndex
它时,我总是会说“哦,这就是我不使用 MultiIndex 的原因”并恢复到拥有单独的元数据和计数数据帧。
python - 如何将 xarray 数据集展平为一维 numpy 数组?
有没有一种简单的方法可以将 xarray 数据集展平为单个 1D numpy 数组?
例如,展平以下测试数据集:
至
?
python - 如何将带有 complex128 数据的 xarray.DataArray 保存到 netcdf
我想用 to_netcdf 保存的 xarray 数据集中有一些复杂数据(numpy dtype complex128)。我收到以下错误:
我知道我正在将数据类型传递给不受支持的底层 netCDF4。我还在使用 netcdf4 的复合数据类型上找到了https://unidata.github.io/netcdf4-python/ 。但不幸的是,我不知道如何将其应用于我的问题,因为我没有直接使用 netcdf4 库。
我可以在保留数据类型的同时将数据类型 complex128 的数据保存到 netcdf(使用xarray.DataArray.to_netcdf
)吗?
MWE:
python - 如何在 python xarray 中存储字典中包含的多维数组?
我有一本包含numpy
不同大小的数组的字典。所有数组都有一个共同的轴长度(时间),我想沿着它存储数据。
例如:
我需要能够轻松地索引和操作数据,所以我的第一个倾向是使用 apandas.Panel
来存储数据,但是,由于尺寸不一致,我一直没有成功。
在这里存储我的数据是否是xarray.Dataset
正确的方法,如果是,如何最好地实施?
python - python-xarray:如何将多个波段和日期的单个波段栅格数据转换为 xarray-Dataset 或 DataArray?
我想获取栅格(卫星图像)数据,并构建一个Dataset
or DataArray
,以加快我的图像处理速度(我必须经常处理多波段、多日期的卫星图像)。
数据作为每个图像日期的单独波段出现,我了解如何将每个波段日期转换为 xarray- DataArray
。我认为为每个波段设置一个变量是最有意义的,并且在每个波段内都有空间(x,y)和时间维度。
但是,我不知道该怎么做。
我一直在与一些虚拟乐队合作以试图解决这个问题,因此将包括在内以澄清我的数据是什么样子以及我正在尝试做什么。
然后我想将它们组合成一个DataArray
,带有两个变量(Band4 和 Band5),每个变量都包含两个图像日期......但不知道如何进行。
创建/导入数组时是否需要添加更多坐标或维度,然后concat
沿着这些维度添加?
python - 使用 xarray 中的名称索引设置值
我正在尝试使用 xarray 在熊猫面板中进行的 MA 交叉。
我正在使用的数据:
与熊猫面板一起使用的代码:
现在,在将面板转换为 xarray 后,我在 xarray 中尝试了以下操作:
出现以下错误,似乎我不能使用 sel 索引来设置值:
知道如何在 xarray 中选择这个子集,然后按预期设置值吗?
谢谢!
indexing - 从 Xarray 数据集中选择给定纬度和经度的时间维度
我正在寻找有关从 xarray 数据集中为给定纬度和经度选择时间序列的最快方法的建议。我正在使用的 xarray 数据集是形状 [400, 2000, 7200] 的 3 维,其中第一个维度是时间 (400),然后是纬度 (2000) 和经度 (7200)。我只需要读取给定矩形中每个网格单元的单独时间序列。因此,我正在为具有给定矩形的每个网格单元一个一个地读取时间序列。
对于这个选择,我使用 .sel 选项。
XR..sel(纬度=Y,经度=X)
其中 XR 是一个 xarray 数据集,Y 和 X 是给定的纬度和经度。
这很好用,但重复几次后会变得非常慢。有更快的选择吗?
谢谢您的帮助!
python - Xarray 滚动平均值与权重
当我在 numpy 中使用权重进行跑步/滚动时,我会做这样的事情:
然后根据应用程序将 data_m[0] 和 data_m[-1] 替换为例如 nans。
类似的事情可以用 xarray 来完成。我所做的(在这种情况下)是
但这对应于权重
在 numpy 示例中。使用 xarray 时,我将如何应用其他权重?