问题标签 [dask]

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 回答
756 浏览

python-3.x - python3上dask.array的安装/使用

我正在测试 dask 模块 ( https://github.com/ContinuumIO/dask ) 以使用大数据数组,但目前无法使其工作。乍一看,在我看来,与某些保留名称或类似名称存在冲突。

安装是在 ubuntu 上使用 $pip3 install dask 进行的,在 IPython 1.2.1 和 Python 3.4.0 上进行了测试。

我附上了一个最小的非工作示例。

有任何想法吗?

谢谢!!

0 投票
2 回答
23671 浏览

python - python dask DataFrame,支持(可简单并行化)行吗?

我最近发现dask模块旨在成为一个易于使用的 python 并行处理模块。对我来说最大的卖点是它适用于熊猫。

在其手册页上阅读了一些内容后,我找不到一种方法来完成这个微不足道的可并行化任务:

目前,为了实现这一目标,AFAIK,

这是丑陋的语法,实际上比完全慢

有什么建议吗?

编辑:感谢@MRocklin 的地图功能。它似乎比普通熊猫应用要慢。这与熊猫 GIL 发布问题有关还是我做错了?

0 投票
2 回答
875 浏览

python - 如何处理修改大熊猫数据框

我有一个较大的熊猫数据框(磁盘上的 1.5gig .csv)。我可以将它加载到内存中并查询它。我想创建一个新列,它是其他两列的组合值,我尝试了这个:

这导致我的 python 进程被杀死,大概是因为内存问题。

该问题的一个更迭代的解决方案似乎是:

这当然看起来很不熊猫。而且速度很慢。

理想情况下,我想要apply_chunk()与 apply 相同但仅适用于数据框的一部分。我认为dask这可能是一个选择,但是dask当我使用数据框时,它们似乎还有其他问题。不过,这一定是一个常见问题,我应该使用一种设计模式来向大型熊猫数据框添加列吗?

0 投票
1 回答
195 浏览

dask - 带有重影的单个 dask 阵列边界

我正在使用Dask尝试使用有限差分设置一些简单的 PDE 解决方案,我想知道是否有一种方法可以指定每个边界的边界条件。

文档在这里

当前ghost.ghost函数允许指定几个不同的 BC,但它们对于 y 边界和 x 边界总是相同的。

文档提到我可以任意填充边界,我很乐意这样做,但是有没有办法告诉ghost.ghost不要块的外部添加任何边界?

0 投票
2 回答
3502 浏览

dask - 无法使用 dask 删除列或切片数据框?

我正在尝试使用 dask 而不是 pandas,因为我有 2.6gb csv 文件。我加载它,我想删除一列。但似乎删除方法 df.drop('column') 或切片 df[ : , :-1]

尚未实施。是这种情况还是我只是错过了什么?

0 投票
2 回答
6471 浏览

python - 以内存有效的方式将大型 csv 读入稀疏的 pandas 数据帧

pandasread_csv函数似乎没有稀疏选项。我有 csv 数据,其中包含大量零(它压缩得非常好,并且剥离任何0值会将其缩小到几乎是原始大小的一半)。

我试过先用read_csv然后调用将它加载到一个密集的矩阵中to_sparse,但是它需要很长时间并且会阻塞文本字段,尽管大部分数据都是浮点数。如果我pandas.get_dummies(df)首先调用将分类列转换为 1 和 0,然后调用to_sparse(fill_value=0)它会花费大量时间,这比我对具有 1200 万个条目(大部分为零)的大多数数字表的预期要长得多。即使我从原始文件中删除零并调用to_sparse()(以便填充值为 NaN),也会发生这种情况。无论我是否通过kind='block'kind='integer'.

除了手动构建稀疏数据框之外,是否有一种好的、流畅的方法可以直接加载稀疏的 csv 而不会占用大量不必要的内存?


下面是一些用于创建具有 3 列浮点数据和 1 列文本数据的示例数据集的代码。大约 85% 的浮点值为零,CSV 的总大小约为 300 MB,但您可能希望使其更大以真正测试内存限制。

这是一种简单的阅读方式,但希望有更好,更有效的方式:

编辑添加(来自 JohnE): 如果可能,请在您的答案中提供一些有关读取大型 CSV 的相关性能统计信息,包括有关您如何测量内存效率的信息(特别是因为内存效率比时钟时间更难测量)。特别要注意,如果内存效率更高,较慢的(时钟时间)答案可能是这里的最佳答案。

0 投票
1 回答
2306 浏览

python - 将核心 4D 图像 tif 存储为 hdf5 python

我有 27GB 的 2D tiff 文件,代表 3D 图像电影的切片。我希望能够对这些数据进行切片,就好像它是一个简单的 numpy4d 数组一样。看起来 dask.array 是一个很好的工具,一旦它作为 hdf5 文件存储在内存中,就可以干净地操作数组。

如果这些文件不能全部放入内存,我如何首先将它们存储为 hdf5 文件。我是 h5.py 和一般数据库的新手。

谢谢。

0 投票
1 回答
1089 浏览

python - 从 HDF5 文件列表创建 dask 数据帧

从 HDF5 文件列表创建 dask.dataframe 的正确方法是什么?我基本上想这样做,但使用数据框

0 投票
1 回答
5000 浏览

pandas - 如何更改 dask 数据框中的行和列?

我在使用 Dask Dataframes 时遇到的问题很少。

假设我有一个包含 2 列的数据框['a','b']

如果我想要一个新专栏c = a + b

在熊猫我会做:

在 dask 我正在执行以下相同的操作:

是否有可能以更好的方式编写此操作,类似于我们在 pandas 中所做的?

第二个问题更让我困扰。

在 pandas 中,如果我想将'a'第 2 行和第 6 行的值更改为np.pi,我执行以下操作

我一直无法弄清楚如何在 Dask 中进行类似的操作。我的逻辑选择了一些行,我只想更改这些行中的值。

0 投票
1 回答
1392 浏览

pandas - 如何在 blaze 中读取制表符分隔的 CSV?

我有一个具有以下格式的“CSV”数据文件(嗯,它是一个 TSV):

该文件可按原样解释pandas

但是,当我尝试读取它blaze(声明使用 pandas 关键字参数)时,会引发异常:

这些都不起作用,pandas 根本没有使用。试图推断列名和类型的“嗅探器”只是csv.Sniffer.sniff()从标准库调用(失败)。

有没有办法在 blaze 中正确读取这个文件(鉴于它的“小兄弟”有几百 MB,我想使用 blaze 的顺序处理能力)?

感谢您的任何想法。

编辑:我认为这可能是 odo/csv 的问题并提出了问题:https ://github.com/blaze/odo/issues/327

Edit2: 完全错误: