问题标签 [python-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.

0 投票
1 回答
659 浏览

python-xarray - 在 xarray 中,来自许多小型 cdfs 的大型磁盘数据集

我是 xarray 的新手,希望能帮助我开始我的项目。我想从许多(1000个)气相色谱-质谱(gcms)文件中创建一个磁盘上的单个xarray数据集或数据框,每个样本运行一个。我最初的目的是简单地绘制来自任意样本集、质荷 (m/z) 通道和保留时间窗口的数据叠加图,xarray 的索引和延迟加载似乎很理想。

我有制造商(奇怪的)cdf格式的数据,每个样本一个文件,并已将每个文件转换为pandas数据帧,格式如下

其中 t 上升到 2100.0 秒,列上升到 500(所以 488 x 18000)。我有 1000 个这样的文件,每个文件都有不同的示例名称。

我最初设想将xr.concat它们放入一个巨大的文件中。因此,按照文档,我已经能够从单个样本创建数据集结构并将其保存到 cdf,如下所示:

(注意 mz 代表质荷比,即 15、16...500 的含义)

正如预期的那样,加载几个 dsixr.open_dataset不会增加 python 进程的内存使用(我正在查看 mac osx 上的活动监视器),这很好。

然而,在运行

内存使用量猛增约 70MB/样本,表明它d完全在内存中,这不会扩展到 1000 个样本。

我可以在 xarray 中做什么来快速访问磁盘上的数据集?似乎xr.concat不是一种可扩展的方式来创建一个巨大的 cdf 文件。或许我需要一种xr.concat直接写入磁盘的方法,或者一个单独的工具来组合 cdfs。

0 投票
2 回答
1647 浏览

python - Python Xarray,按索引或维度排序?

中是否有某种sort_indexsort_by_dimension方法xarray,很像pandas.DataFrame.sort_index(),我可以在其中按xarray.DataArray对象的一个​​维度对对象进行排序?在使用方面,我正在考虑类似data_array.sort(dim="dimension_name").

0 投票
1 回答
378 浏览

python - 扩展 xarray 数据集

我正在尝试将霜冻天数添加到 xarray 教程数据集中。

数据在时间上是相当高分辨率的,所以为了更容易处理,我对它们重新采样 air_day = airtemps.resample('1D', 'time', how='mean') air_month = air_day.resample('1M', 'time' , 如何='意思')

结果,我想在air_month所有三个维度上添加一个额外的变量,其中包含平均值低于零的天数。

我非常天真的尝试将是……。像这样

但是通过sum()ing,我在这里失去了时间维度。我被困在这里,仍然没有将 xarray 概念包裹在我的脑海中。

感谢帮助!

0 投票
1 回答
520 浏览

python - how to read netcdf4 data if I only have netcdf3 tool?

    1. My school cluster admin said: if we load netcdf4 module, then we cannot load netcdf3 module. So he refused to update netcdf4
    1. I have a .nc file, which is a netcdf4 file, I think and I need to load it in R.
    1. In R on our cluster, only RNetCDF package is installed. And it cannot read the above .nc file. The ncdf4 package is not there. (I try to install it, it says it requires netcdf library of version 4. And of course I do not have sudo)
    1. In python, (I don't know why) I can load netcdf4 file. I don't know if I can use this to (save it in netcdf 3 format?) help me load that data in R.

So, how should I do?

  • The admin don't want to switch to netcdf4 module, and so it seems I(or he) cannot install ncdf4 package in R.
  • Some of the nc data are directly downloaded from some website, and some of the nc files are from the output of the xarray package in python (and the netcdf output of xarray is in version 4).
0 投票
2 回答
1688 浏览

python - 在多个条件下过滤数据数组

从 xarray 的教程数据中,我想提取一个DataArray包含月份温暖天数的数据,定义为 22 到 30 摄氏度:

我现在正在寻找一种以编程方式在下面创建此地图的方法,还可以添加更多条件

条件可以这样定义:

我可以在一个条件下简单地做到这一点:

但我正在努力动态添加多个。我可以做这个

但我想做某事。像这样

为了方便起见,这里有一个要点。与往常一样,我提前感谢

0 投票
2 回答
691 浏览

python - 在特定坐标处插入 DataArray

我正在尝试使用有关单元格的一些元信息填充 DataArray 以将其添加到数据集中。

给定现有维度,我可以设置一组全新的数据:

我想要的是在给定坐标处添加一个数据点,基本上

这可以做到吗?

0 投票
3 回答
3891 浏览

python-xarray - 写入 to_netcdf 时为 xarray 数据集中的许多变量指定编码/压缩

我一直在写出一些具有多个变量的 xarray.Datasets。目前,为了使大小易于管理,我指定了编码,例如 zlib,但需要逐个变量应用于变量(dataArray)。

将相同的编码参数应用于所有变量的好方法是什么?例如

在写出这个数据集时,我们将使用:

对于更多变量,这会变得很冗长。一种选择是以顺序追加的方式将每个数据数组写入 netcdf,但是当数据集准备就绪时,这似乎也很复杂。

0 投票
1 回答
2099 浏览

pandas - 使用不同的方法对 xarray 数据集进行重采样

我需要为另一个数据变量重新采样一个使用DataSet。我正在使用这种有点麻烦的方法:mean()sum()

可以/应该以不同的方式完成吗?

0 投票
1 回答
133 浏览

python - python matplotlib.pyplot 如何支持 pandas、xarray 等数据类型?

用最简单的方式提出问题——这段代码的最后一行是如何工作的?

我的印象是 pandas 是建立在顶部 numpy链接上的,然后 xarray 有点基于 pandas链接。但是,我没有找到任何说明 numpy 本身支持 xarray.DataArray 的信息,而且使用 xarray 的人并不多于 numpy。那么为什么我可以用 xarray.DataArray 对象初始化 numpy.ndarray 呢?我的一个猜测是 xarray 包中提供了相应的支持,但我没有看到 xarray 包中的代码可能影响 numpy.ndarray.__init__(或 numpy 包中的任何函数)的机制。

谁能给我解释一下这种上下支持是如何实现的?

0 投票
1 回答
105 浏览

python - 将 pandas series/dataframe 中的每个值映射到 n>1 维

我有一个熊猫系列,以及一个在系列中取值并返回数据框的函数。有没有办法将函数应用于系列并以自然的方式整理结果?

我真正想做的是使用 pandas series/multiindex 来跟踪我的数据分析管道的每个步骤中的结果,其中 multiindex 保存用于获取值的参数。例如,系列(s below)是我的数据分析管道中第 0 步的结果。在第 1 步中,我想尝试 x 更多维度(以下 2 个,因此是数据框)并将结果整理到另一个系列中。

我们能比下面做得更好吗?哪里stack()来电似乎有点过分。xarray 库是否适合我的用例?