【发布时间】:2021-01-02 00:44:12
【问题描述】:
与this post 有点相关,我正在尝试在dask 中复制multivariate_normal:
使用 numpy,我可以使用以下方法创建具有指定协方差的多元法线矩阵:
import numpy as np
n_dim = 5
size = 300
A = np.random.randn(n_dim, n_dim) # a matrix
covm = A.dot(A.T) # A*A^T is positive semi-definite, as a covariance matrix
x = np.random.multivariate_normal(size=300, mean=np.zeros(len(covm)),cov=covm) # generate data
然而,我需要一个包含n_dim = 4_500_000 和size = 100000 的非常大的矩阵。对于 CPU 和内存,这将是昂贵的计算。幸运的是,我可以访问 Cloudera DataScience Workbench 集群并尝试使用 dask 解决这个问题:
import dask.array as da
n_dim = 4_500_000
size = 100000
A = da.random.standard_normal((n_dim, n_dim))
covm = A.dot(A.T)
#x = da.random.multivariate_normal(size=300, mean=np.zeros(len(covm)),cov=covm) # generate data
在documentation 中,我找不到任何似乎可以满足我需要的功能。有谁知道解决方案/解决方法,可能使用xarray 或在集群上运行的任何其他模块?
【问题讨论】:
标签: python pyspark dask python-xarray dask-distributed