Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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 如何创建dtype=float16的大型稀疏矩阵?_Python_Matrix_Sparse Matrix - Fatal编程技术网

Python 如何创建dtype=float16的大型稀疏矩阵?

Python 如何创建dtype=float16的大型稀疏矩阵?,python,matrix,sparse-matrix,Python,Matrix,Sparse Matrix,我尝试了所有这些,要么是内存错误,要么是其他错误 Matrix1 = csc_matrix((130000,130000)).todense() Matrix1 = csc_matrix((130000,130000), dtype=float_).todense() Matrix1 = csc_matrix((130000,130000), dtype=float16).todense() 如何使用浮点型数据创建一个巨大的稀疏矩阵?要创建一个巨大的稀疏矩阵,只需执行您正在执行的操作: M

我尝试了所有这些,要么是内存错误,要么是其他错误

Matrix1 = csc_matrix((130000,130000)).todense()

Matrix1 = csc_matrix((130000,130000), dtype=float_).todense()

Matrix1 = csc_matrix((130000,130000), dtype=float16).todense()

如何使用浮点型数据创建一个巨大的稀疏矩阵?

要创建一个巨大的稀疏矩阵,只需执行您正在执行的操作:

Matrix1 = csc_matrix((130000,130000), dtype=float16)
…最后没有打电话。这会成功,并占用少量内存。1

当您添加
todense()
时,它成功地创建了一个占用少量内存的大型稀疏数组,然后尝试将其转换为占用大量内存的密集数组,但由于
内存错误而失败。但解决办法就是…不要那样做

同样,如果您使用而不是
dtype=float16
,您将得到float64值(这不是您想要的,并且占用了4倍的内存),但是,解决方案只是…不要这样做



一,
sys.getsizeof(m)
为稀疏数组句柄提供56字节,
sys.getsizeof(m.data)
为内部存储句柄提供96字节,
m.data.nbytes
为实际存储句柄提供0字节,总计152字节。这不太可能引发
内存错误

看起来您正在成功创建一个巨大的稀疏矩阵,然后立即对其调用
todense()
,这就是导致内存错误的原因。如果您想要稀疏数组,为什么要将其转换为密集数组?而且,
float\uuu
float64
的别名,那么如果您想要
float16
,为什么要使用它呢?这显然会使它占用4倍的内存?