Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 无法分配形状为(148253567826)且数据类型为int64的数组_Python 3.x_Google Cloud Platform_Scipy - Fatal编程技术网

Python 3.x 无法分配形状为(148253567826)且数据类型为int64的数组

Python 3.x 无法分配形状为(148253567826)且数据类型为int64的数组,python-3.x,google-cloud-platform,scipy,Python 3.x,Google Cloud Platform,Scipy,我试图将scipy.sparse.csr.csr_形状矩阵(148253567826)存储到一个数据帧中,但得到如下错误。我在谷歌云平台上运行,拥有4CPU和208GB内存。我不能再增加我的记忆力了。我如何解决这个问题?如有任何建议,我们将不胜感激 type(x_train_bow_name)` scipy.sparse.csr.csr_matrix data1 = pd.DataFrame(x_train_bow_name.toarray())` -

我试图将scipy.sparse.csr.csr_形状矩阵(148253567826)存储到一个数据帧中,但得到如下错误。我在谷歌云平台上运行,拥有4CPU和208GB内存。我不能再增加我的记忆力了。我如何解决这个问题?如有任何建议,我们将不胜感激

type(x_train_bow_name)`
scipy.sparse.csr.csr_matrix







   data1 = pd.DataFrame(x_train_bow_name.toarray())`




        ----------------------------------------------------------------- 
        ----------
        MemoryError                               Traceback (most recent 
        call 
        last)
       <ipython-input-16-283fa4dd2dd6> in <module>
         ----> 1 data1 = pd.DataFrame(x_train_bow_name.toarray())

                /usr/local/lib/python3.5/dist- 
         packages/scipy/sparse/compressed.py in toarray(self, order, out)
            1022         if out is None and order is None:
       1023             order = self._swap('cf')[0]
       -> 1024         out = self._process_toarray_args(order, out)
       1025         if not (out.flags.c_contiguous or 
      out.flags.f_contiguous):
            1026             raise ValueError('Output array must be C or 
         F contiguous')

        /usr/local/lib/python3.5/dist-packages/scipy/sparse/base.py in 
           _process_toarray_args(self, order, out)
                1184             return out
             1185         else:
            -> 1186             return np.zeros(self.shape,  
          dtype=self.dtype, order=order)
         1187 
        1188 

     MemoryError: Unable to allocate array with shape (1482535, 67826) 
      and data type int64
类型(x\u列车\u船首\u名称)`
scipy.sparse.csr.csr_矩阵
data1=pd.DataFrame(x_train_bow_name.toarray())`
----------------------------------------------------------------- 
----------
MemoryError回溯(最近的
呼叫
最后)
在里面
---->1 data1=pd.DataFrame(x_train_bow_name.toarray())
/usr/local/lib/python3.5/dist-
包/scipy/sparse/compressed.py in-toarray(self、order、out)
1022如果out为None且order为None:
1023订单=自交换('cf')[0]
->1024 out=self.\u进程\u到阵列\u参数(订单,输出)
1025如果不是(out.flags.c_或
out.flags.f_连续):
1026 raise VALUERROR('输出数组必须是C或
F连续')
/中的usr/local/lib/python3.5/dist-packages/scipy/sparse/base.py
_处理到阵列参数(自身、订单、输出)
1184返回
1185其他:
->1186返回np.零(自形,
dtype=self.dtype,order=order)
1187
1188
MemoryError:无法分配具有形状的数组(148253567826)
和数据类型int64

一切都表明这是一个问题

请看下面的内容,其中很好地解释了Linux中的虚拟内存设置以及Overmit的问题

修改过限设置的两个参数是
/proc/sys/vm/overmit_memory
/proc/sys/vm/overmit_ratio

/proc/sys/vm/overmit\u内存
此开关知道3种不同的设置,但在您的情况下,我认为您可以使用值=
1

1:典型的例子是使用稀疏数组的代码,它仅仅依赖于几乎完全由零页组成的虚拟内存

超级用户可以更改该设置:

echo 1 > /proc/sys/vm/overcommit_memory
echo 75 > /proc/sys/vm/overcommit_ratio
默认值为
0

/proc/sys/vm/overmit\u比率
此设置仅在
overmit_memory=2
时使用,并定义使用的物理RAM的百分比。交换空间在上面。默认值为“50”,即50%

超级用户可以更改该设置:

echo 1 > /proc/sys/vm/overcommit_memory
echo 75 > /proc/sys/vm/overcommit_ratio

另外,请查看以下内容

在pandas中读取稀疏scipy矩阵的方法是:

pd.DataFrame.sparse.from_spmatrix(my_sparse_matrix)
这将创建具有稀疏数据类型的数据帧。稀疏数据类型的形式为
pd.SparseDtype(“float”,np.nan)


通过执行my_sparse_matrix.toarray()操作,您正在撤消它的“稀疏性”。

您正在运行64位python吗?嘿!这似乎是内存过度使用的问题。检查numpy在哪里解决了相同的问题。如果这对你有帮助,请告诉我。