账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何设定dask array的shape和chunksize
    77
    0

    如题:如何设置dask.array的chunksize和shape?
    代码如下

    >>> x = data.values
    >>> x
    dask.array<values, shape=(nan, 24), dtype=int64, chunksize=(nan, 24)>
    
    >>> y = data['label'].values
    >>> y
    dask.array<values, shape=(nan,), dtype=int64, chunksize=(nan,)>
    >>> type(y)
    dask.array.core.Array
    
    >>> from dask_ml.linear_model import LogisticRegression
    >>> lgr = LogisticRegression()
    >>> lgr_model = lgr.fit(x, y)
    ---------------------------------------------------------------------------
    NotImplementedError                       Traceback (most recent call last)
    <ipython-input-116-f51a6d13cf8c> in <module>()
    ----> 1 lgr_model = lgr.fit(x, y)
    
    E:\miniconda\envs\course_py35\lib\site-packages\dask_ml\linear_model\glm.py in fit(self, X, y)
        151         self : objectj
        152         """
    --> 153         X = self._check_array(X)
        154 
        155         solver_kwargs = self._get_solver_kwargs()
    
    E:\miniconda\envs\course_py35\lib\site-packages\dask_ml\linear_model\glm.py in _check_array(self, X)
        165     def _check_array(self, X):
        166         if self.fit_intercept:
    --> 167             X = add_intercept(X)
        168 
        169         return check_array(X)
    
    E:\miniconda\envs\course_py35\lib\site-packages\multipledispatch\dispatcher.py in __call__(self, *args, **kwargs)
        208             self._cache[types] = func
        209         try:
    --> 210             return func(*args, **kwargs)
        211 
        212         except MDNotImplementedError:
    
    E:\miniconda\envs\course_py35\lib\site-packages\dask_glm\utils.py in add_intercept(X)
        145 def add_intercept(X):
        146     if np.isnan(np.sum(X.shape)):
    --> 147         raise NotImplementedError("Can not add intercept to array with "
        148                                   "unknown chunk shape")
        149     j, k = X.chunks
    
    NotImplementedError: Can not add intercept to array with unknown chunk shape

    根据报错提示,x、y数据的chunksize和shape未明确,所以如何设定它们的chunksize

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ︸°放扌才能自由 普通会员 1楼

      在Dask中,你可以通过以下方式来设定dask array的shape和chunksize:

      1. shape: shape属性可以用来设置数组的形状。它是一个元组,第一个元素是一个维度列表,第二个元素是一个元组,表示数组需要的内存大小。

      例如,如果你有一个形状为(10, 10)的数组,你可以这样设置shape属性:

      python array = dask.array([[1, 2], [3, 4]]) array.shape = (10, 10)

      1. chunksize: chunksize属性可以用来设置数组的块大小。它是一个整数,表示块的大小。

      例如,如果你有一个形状为(10, 10)的数组,你可以这样设置chunksize属性:

      python array = dask.array([[1, 2], [3, 4]]) array.chunksize = (10, 10)

      如果你想要在运行时动态设置块大小,你可以使用dask.array.resize方法。这个方法接受一个可迭代对象和一个新的块大小作为参数。

      例如:

      python array = dask.array([[1, 2], [3, 4]]) array.resize((5, 5))

      在这个例子中,新的块大小是5x5,所以数组的形状会变为(5, 5)。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部