numpy矩阵的最大元素/情况是什么,或者numpy矩阵的最大大小是多少?
上面的代码在变量矩阵size...so上返回内存错误,它依赖于什么环境(可用内存的顺序数量?)?
for ret in xrange(5000,7000,50):
res = []
for x in xrange(ret):
temp=[]
for y in xrange(ret):
temp.append(random.random())
res.append(temp)
print "r"
r = numpy.m
我需要存储20000x20000订单的大矩阵。当我尝试初始化这个顺序的矩阵时,Python会引发内存错误。
Traceback (most recent call last):
File "C:\Users\harwee\Desktop\Bubble\test_folder\test.py", line 3, in <module>
a = numpy.ones((x,x),dtype=int)
File "C:\Python27\lib\site-packages\numpy\core\numeric.py", line 183
我正在尝试对我的数据集应用分层聚类,该数据集由14039个用户向量组成。每个向量有10个特征,其中每个特征基本上是该用户标记的标签的频率。我正在使用Scipy api进行集群。现在我需要计算这14039个用户之间的成对距离,并将距离矩阵传递给链接函数。
import scipy.cluster.hierarchy as sch
Y = sch.distance.pdist( allUserVector,'cosine')
set_printoptions(threshold='nan')
print Y
但是我的程序在计算距离矩阵本身的时候给出了
基本上,当我试图在numpy矩阵上执行代数操作时,我在python中遇到了内存错误。变量u是一个大的双精度矩阵(在失败的情况下,它是一个288x288x156的双精度矩阵。我只在这个巨大的情况下得到这个错误,但我能够在其他大型矩阵上做到这一点,只是没有这么大)。以下是Python错误:
Traceback (most recent call last):
File "S:\3D_Simulation_Data\Patient SPM Segmentation\20 pc
t perim erosion flattop\SwSim.py", line 121, in __i
a = numpy.zeros((17770,5))
b = numpy.zeros((5,20000))
ma = numpy.matrix(a)
mb = numpy.matrix(b)
就是ma.shape = (17770,5),mb.shape = (5,20000),都是numpy.matrix。
我需要ma*mb。但是我得到了错误消息"ValueError: array is too big"。
这些矩阵对于Python乘法是不是太大了?
顺便说一句,我使用python2.6.6/32bit/3 3GB进行了测试
我使用openpyxl和numpy来读取大型excel文件。代码看起来像这样
W = load_workbook(fname, read_only = True)
p = W.worksheets[0]
a=[]
m = p.max_row
n = p.max_column
for row in p.iter_rows():
for k in row:
a.append(k.value)
# convert list a to matrix (for example 5*6)
aa= np.resize(a, [m, n])
对于中等大小的文件(4MB excel文件
我试图执行一个矩阵乘法,它有以下方案:
C = np.dot(np.dot(sparse.csr_matrix(np.double(A).transpose()),sparse.spdiags(B,0,Ngrid,Ngrid)), sparse.csr_matrix(np.double(A)))
因此,我想转置矩阵A,它导致M>>N的N矩阵,并与对角矩阵M矩阵相乘。B是“主要对角线”。得到的矩阵( N )应与矩阵A ( M )相乘,从而得到N矩阵C。
出现的错误如下:
<2000x921600 sparse matrix of type '<class '
我是Python的新手,我正在尝试将数据写入一个CSV文件的矩阵中。该变量被定义为:
(Pdb) trainFeatures
<1562936x312116 sparse matrix of type '<type 'numpy.float64'>'
with 43753231 stored elements in Compressed Sparse Row format>
我有一行代码:
numpy.savetxt("feature_train.csv", trainFeatures, delimiter=',&
我希望在python中做快速矩阵乘法,最好是NumPy,通过使用第三个索引数组I来实现数组A和另一个重复矩阵数组B的快速矩阵乘法。这可以使用花式索引和矩阵乘法来实现:
from numpy.random import rand, randint
A = rand(1000,5,5)
B = rand(40000000,5,1)
I = randint(low=0, high=1000, size=40000000)
A[I] @ B
但是,这会创建形状(40000000、5、5)的中间数组A[I],该数组溢出内存。重复一小组矩阵进行乘法似乎效率很低,这本质上是一个更普遍的广播版本,比如A[
我在表演numpy svd
U, S, V = np.linalg.svd(A)
A的形状是:
(10000, 10000)
由于大小,它给我的内存错误:
U, S, V = np.linalg.svd(A, full_matrices=False) # nargout=3
File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 1319, in svd
work = zeros((lwork,), t)
MemoryError
那么我如何为我的矩阵找到svd?
我想使用sklearn初始化300,000 x 300,0000稀疏矩阵,但它需要内存,就好像它不是稀疏的一样: >>> from scipy import sparse
>>> sparse.rand(300000,300000,.1) 它会给出错误: MemoryError: Unable to allocate 671. GiB for an array with shape (300000, 300000) and data type float64 这与我使用numpy进行初始化时的错误相同。 np.random.normal(size=[
我正在使用Python、numpy和scipy对我为文本分析创建的主题模型的输出进行一些层次聚类。
我将我的测试语料库应用于ldamodel,因此它成为一个词袋表示。然后我把它变成了一个矩阵。现在,我想使用scipy来创建一个矩阵的链接矩阵。但它给出了值错误:使用序列设置数组元素。我猜这是因为只有形状相同的数组才能聚集在一起。我的矩阵在列表中的列表之间有长度上的差异。我现在只是不知道如何解决这个问题。下面是代码的一小部分。我不知道这是否有帮助。我真的希望有人能帮我。
import numpy as np
X = np.array(corpus)
from matplotlib im
我想通过q-gram距离或简单的"bag距离“或Python中的Levenshtein距离来聚类大约100,000个短字符串。我计划填写一个距离矩阵(100,000选择2个比较),然后使用进行分层聚类。但我还没上路就遇到了一些记忆问题。例如,距离矩阵对于numpy来说太大了。
aa = numpy.zeros((100000, 100000))
ValueError: array is too big.
这看起来是合理的做法吗?或者,在这个任务中,我注定会出现内存问题?谢谢你的帮助。
我有一个3000x300的矩阵文件(浮动)。当我读取并转换为float时,我得到的是float64,这是python中的默认设置。我尝试了numpy和map()将其转换为float32(),但它们似乎都非常低效。
我的代码:
x = open(readFrom, 'r').readlines()
y = [[float(i) for i in s.split()] for s in x]
耗时:0:00:00.996000
numpy实现:
x = open(readFrom, 'r').readlines()
y = [[np.float32(i) for i
几天来,我一直试图从一个非常大的协方差矩阵中计算出最近的正半定矩阵,以便能够从中取样。
我已经尝试了MATLAB的效果,但内存使用是疯狂的,它总是崩溃最终,没有错误消息或日志文件,直到我搜索。用于计算的函数可以在这里找到。优化函数以删除中间矩阵似乎减少了内存的使用,但它最终以同样的方式崩溃。
找到了这种计算的方法,并切换到Python,希望找到一些GPU库来加速计算,但是我似乎找不到一个最新的库,它支持使用numpy函数计算特征向量。这是我使用的函数:
import numpy as np
def get_near_psd(A):
C = (A + A.T)/2
eigval
我有一个大小为300 x 100 x 300的矩阵X。让我们假设以下Python代码:
import numpy as np
X = np.ones((300,100,300))
Y = np.dot(X, X.T)
我收到一个错误的shapes (300,100,300) and (300,100,300) not aligned: 300 (dim 2) != 100 (dim 1)
如何解决此错误?
任何帮助都将不胜感激!
我正在尝试cPickle一个大的scipy稀疏矩阵,以供以后使用。我得到了这个错误:
File "tfidf_scikit.py", line 44, in <module>
pickle.dump([trainID, trainX, trainY], fout, protocol=-1)
SystemError: error return without exception set
trainX是大型稀疏矩阵,另外两个是6mil元素长度的列表。
In [1]: trainX
Out[1]:
<6034195x755258 sparse matri
我有一个非常大的稀疏Numpy矩阵(类型为numpy.ndarray)。矩阵太大了,很可能必须存储在虚拟内存中。如何有效地将其转换为稀疏的枕木矩阵(来自scipy.sparse)(用于算术操作)?
下面是dok_matrix的直接转换,这可能是由于内存问题而失败的。将dok_matrix更改为csr_matrix会导致相同的内存问题。
In [1]: N=int(1e6)
In [2]: from scipy.sparse import dok_matrix
In [3]: import numpy as np
In [4]: mat=np.zeros((N,N))
In [5]: d
我需要从权重矩阵的值开始创建一个矩阵。在创建和迭代矩阵时,哪种结构在速度上是保持矩阵的最佳结构?我在考虑一个列表或一个numpy 2D数组,但它们在我看来都很慢。我需要的是:
numpy array
A = np.zeros((dim, dim))
for r in range(A.shape[0]):
for c in range(A.shape[0]):
if(r==c):
A.itemset(node_degree[r])
else:
A.itemset(arc_weight[r,c])
或
list
我试图在一个很长的图书数据库(大约60,000本书)中获得所有单词的集合,并将每本书的‘词汇表’存储在一个矩阵中(书籍的路径在“文件”中):
for f in files:
book = open(f, 'r')
vocabulary = []
for lines in book.readlines():
words = string.split(lines)
vocabulary += set(words)
matrix.extend([vocabulary])
V += set(vocabulary)