我有一个计算,希望熊猫的数据作为输入。我想在存储在netCDF文件中的数据上运行这个计算,该文件扩展到51 at -目前我一直在用xarray.open_dataset打开文件并使用块(我的理解是这个打开的文件实际上是一个dask数组,因此一次只将数据块加载到内存中)。然而,我似乎无法利用这种懒散的加载,因为为了运行我的计算,我必须将xarray数据转换为熊猫数据--我的理解是,此时所有的数据都被加载到内存中(这很糟糕)。
因此,我想长话短说,我的问题是:如果没有任何中间步骤将整个数据加载到内存中,我如何才能从xarray数据集获得熊猫的数据?我看过dask与pandas.read_csv一起
我在每个网格箱中输入了一些总水量的大气模式数据。我正在尝试从这些输入数据计算云顶高度;因此,对于每一列,我需要找到输入数据大于阈值的最高实例。 我的输入数据是nz x ny x nx的100 x 900 x 900。我的数据通过dask和100 x 50 x 50块加载到xarray中。传统上,我会这样做: cloud_top_height = numpy.zeros((900,900)
for x in range(0, nx):
for y in range(0, ny):
cloud_top_found = false
for z in range(nz, 0, -
我有一个函数f,它使用一个变量x作为输入,它是一个大型np.ndarray (伦特20000)。
执行f所需的时间非常少(大约5ms)。
多行矩阵M上的一个M循环
for x in M:
f(x)
与使用多处理并行化相比,需要花费大约5倍的时间。
import multiprocessing
with multiprocessing.Pool() as pool:
pool.map(f, M)
我曾经尝试过与dask并行化,但是它甚至在顺序执行中失败了。相关的职位是,但接受的答案不适用于我。我尝试过很多事情,如使用数据的分区(如所说的)或使用dask.bag。我在本地机器上运
我对尝试并行化我的python代码非常陌生。我正在尝试对xarray执行一些分析,然后用结果填充pandas dataframe。数据帧的列是独立的,所以我认为使用dask delayed进行并行化应该是微不足道的,但无法弄清楚如何实现。我的xarray非常大,所以这个循环需要一段时间,而且占用的内存也很大。它也可以被时间分块,如果这样更容易的话(这可能有助于记忆)! 下面是未并行化的版本: from time import sleep
import time
import pandas as pd
import dask.dataframe as dd
data1 = np.random
我有37年的NetCDF文件,每天的时间步长,并计算所有年份(13513天)每个单元格的函数。对所有单元格重复此函数的计算。为此,我使用xarray和da.sel方法,但它非常慢,并且没有使用我笔记本电脑的多核。我正在努力弄清楚如何在当前的场景中使用dask。有什么建议可以改进/加速代码吗? for c in range(len(df)):
arr = np.array([])
lon=df.X[c]
lat=df.Y[c]
for yr in range(1979,2016,1):
ds = xr.open_dataset('D:/p
我只是学习使用达克和阅读这个论坛上的许多与dask和for循环相关的线程。但我仍然不清楚如何应用这些解决方案来解决我的问题。我正在处理气候数据,这些数据的功能是(时间、深度、位置)。“位置”坐标是一个线性索引,因此每个值对应于唯一的(经度、纬度)。假设var1和var2是两个输入变量,我将在下面展示我所要做的工作的基本框架。我想在位置参数'nxy‘上并行化,因为我的计算可以在不同的位置同时进行。
for loc in range(0,nxy): # nxy = total no. of locations
for it in range(0,ntimes):
我有一个维度为x、y和time的三维xarray数据集。假设我知道在timestep n处有一个丢失的观察值,那么插入一个没有数据值的时间片的最佳方法是什么? 下面是一个有效的示例: import xarray as xr
import pandas as pd
x = xr.tutorial.load_dataset("air_temperature")
# assuming this is the missing point in time (currently not in the dataset)
missing = "2014-12-31T07:00:0
在函数的apply_ufunc中,它说:
dask: ‘forbidden’, ‘allowed’ or ‘parallelized’, optional
How to handle applying to objects containing lazy data in the form of dask arrays:
‘forbidden’ (default): raise an error if a dask array is encountered.
‘allowed’: pass dask arrays directly on to func.
‘p
我正在尝试解压缩一个文件,但是在运行以下代码时我得到了这个错误:
import pickle
import pandas as pd
import numpy
unpickled_df = pd.read_pickle("./ToyData.pickle")
unpickled_df
或
import pickle
# load : get the data from file
data = pickle.load(open('ToyData.pickle', "rb"))
错误输出:
AttributeError
我在我的机器上使用Dask和Docker本地写作(OSX Catalina 10.15.17)。我的停靠-撰写文件与相同,只是我在笔记本容器中添加了一个卷。
我可以在默认地址localhost:8787正确地访问仪表板,但是当我启动一些任务时,比如使用xarray或类似的东西:
import dask.array as da
x = da.random.random((1000,1000,10), chunks=(1000,1000,5))
y = da.random.random((1000,1000,10), chunks=(1000,1000,5))
z = (da.arcsin(x)