我正在使用numpy并尝试创建一个巨大的矩阵。这样做时,我收到内存错误
由于矩阵并不重要,因此我将向您展示如何轻松重现错误的方法。
a = 10000000000
data = np.array([float('nan')] * a)
毫不奇怪,这把我扔了 MemoryError
我想讲两件事:
有没有一种简单的方法可以处理numpy中的大型矩阵?
为了安全起见,我之前阅读过这些帖子(听起来很相似):
使用Python和NumPy的超大型矩阵
Python / Numpy
MemoryError
PS显然我在数的乘法和除法 方面 存在一些问题 ,这使我认为我有足够的内存。所以我认为是时候该睡觉了,复习数学,也许是买些记忆。
也许是在这段时间里,一些天才可能提出了如何仅使用24 Gb Ram实际创建此矩阵的想法。
为什么我需要这个大矩阵,
所以我不会对该矩阵做任何操作。我需要做的就是将其保存到pytables中。
假设每个浮点数均为4个字节,您将拥有
(10000000000 * 4) /(2**30.0) = 37.25290298461914
或需要在内存中存储37.5 GB。所以我认为24gb的RAM是不够的。
代码: 导致"ValueError:具有多个元素的数组的真值不明确。使用a.any()或a.all()” 有什么问题?
问题内容: 我有以下代码: 它创建一个填充零的矩阵。相反,我想知道是否有一种函数或方法可以将它们初始化为s,而方法很简单。 问题答案: 您很少需要在numpy中进行矢量操作循环。您可以创建一个未初始化的数组并立即分配给所有条目: 我已经在这里和Blaenk发布的时间安排了时间: 时序显示优先选择作为更快的替代方案。OTOH,我喜欢numpy的便捷实现,在该实现中您可以同时为整个slice分配值,代
在Java中分配堆外内存时(例如通过直接缓冲区或JNI本机代码),如果JVM使用-XX: UseLargePages,分配的内存是否会由巨大的页面支持?
问题内容: 拥有一个拥有520多个表的ERP数据库,EntityPersister的postInstanciate速度非常慢,并且消耗的512M以上(仅对于一个会话Factory而言是很大的),应用程序也变得非常慢。 问题答案: 我无法发布所有更改,但是这里有一些想法: 1_ postInstanciate为所有实体和集合创建许多Entiy加载器(每个实体和每个集合的加载器类型很多),此操作应按需
本文向大家介绍详解numpy矩阵的创建与数据类型,包括了详解numpy矩阵的创建与数据类型的使用技巧和注意事项,需要的朋友参考一下 Numpy是python常用的一个类库,在python的使用中及其常见,广泛用在矩阵的计算中,numpy对矩阵的操作与纯python比起来速度有极大的差距。 一、 构造矩阵 矩阵的构造可以有多种方法: 1.使用python中的方法构造矩阵 - 生成一维矩阵 - 生成二
问题内容: 我的BinvA矩阵的(1,1)条目得到一个非常奇怪的值,我 只是想将B矩阵求逆,并进行(B ^ -1)A乘法。 我知道,当我手动进行计算时,我的(1,1)应该为0,但我得到1.11022302e-16。我该如何解决?我知道浮点数不能完全准确地表示出来,但是为什么这会给我这么不准确的响应,而不是四舍五入,有什么办法可以使我更准确呢? 她是我的代码: 我的印刷声明: 问题答案: 计算逆时,