草庐IT

sparse-matrix

全部标签

python - 如何获得 csr_matrix 中列的均值和标准差?

我有一个通过scipy.sparse创建的稀疏988x1向量(csr_matrix中的一列)。有没有办法在不必将稀疏矩阵转换为密集矩阵的情况下获得其均值和标准差?numpy.mean似乎只适用于密集向量。 最佳答案 由于您正在执行列切片,因此最好使用CSC而不是CSR来存储矩阵。但这取决于您对矩阵进行的其他操作。要计算CSC矩阵中列的平均值,您可以使用mean()矩阵的函数。要有效地计算标准偏差,需要付出更多的努力。首先,假设您得到这样的稀疏列:col=A.getcol(colindex)然后像这样计算方差:N=col.shape[

python - Matplotlib imshow : how to apply a mask on the matrix

我正在尝试以图形方式分析二维数据。matplotlib.imshow在这方面非常有用,但我觉得如果我可以从我的矩阵中排除一些单元格,我可以更多地利用它,这些单元格的值超出了感兴趣的范围。我的问题是这些值在我感兴趣的范围内“拉平”了颜色图。排除这些值后,我可以获得更高的颜色分辨率。我知道如何在我的矩阵上应用掩码来排除这些值,但它在应用掩码后返回一个一维对象:mask=(myMatrix>lowerBound)&(myMatrix有没有办法将掩码传递给imshowhowtoreconstructa2darray? 最佳答案 您可以使用n

python - Pandas scatter_matrix - 绘制分类变量

我正在查看Kaggle竞赛中著名的泰坦尼克号数据集:http://www.kaggle.com/c/titanic-gettingStarted/data我已使用以下方式加载和处理数据:#importrequiredlibrariesimportpandasaspdimportmatplotlib.pyplotasplt%matplotlibinline#loadthedatafromthefiledf=pd.read_csv('./data/train.csv')#importthescatter_matrixfunctionalityfrompandas.tools.plottin

python - 如何在 Python 中有效地添加稀疏矩阵

我想知道如何在Python中高效地添加稀疏矩阵。我有一个程序可以将一个大任务分解成多个子任务,并将它们分布在多个CPU上。每个子任务都会产生一个结果(一个scipy稀疏矩阵,格式为:lil_matrix)。稀疏矩阵的维度是:100000x500000,这是相当大的,所以我真的需要最有效的方法来将所有生成的稀疏矩阵求和到一个稀疏矩阵中,使用一些C编译的方法或其他东西。 最佳答案 你试过最简单的计时方法吗?matrix_result=matrix_a+matrix_b文档警告说对于LIL矩阵这可能会很慢,建议以下可能更快:matrix_

python - numpy np.array 与 np.matrix(性能)

在使用numpy时,我经常发现这种区别很烦人-当我从矩阵中提取一个向量或一行,然后使用np.array执行操作时,通常会出现问题。为了减少麻烦,为了简单起见,我有时只使用np.matrix(将所有np.arrays转换为np.matrix)。但是,我怀疑会有一些性能影响。任何人都可以评论这些可能是什么以及原因吗?看起来如果它们都只是引擎盖下的数组,那么元素访问只是一个获取值的偏移量计算,所以如果不通读整个源代码我不确定可能有什么区别。更具体地说,这对性能有什么影响:v=np.matrix([1,2,3,4])#versusthebeloww=np.array([1,2,3,4])谢谢

python - Scipy 稀疏矩阵乘法

我有这个使用numpy数组进行矩阵乘法的例子:importnumpyasnpm=np.array([[1,2,3],[4,5,6],[7,8,9]])c=np.array([0,1,2])m*carray([[0,2,6],[0,5,12],[0,8,18]])如果m是scipy稀疏CSR矩阵,我如何做同样的事情?这给出了维度不匹配:sp.sparse.csr_matrix(m)*sp.sparse.csr_matrix(c) 最佳答案 您可以调用csr_matrix的multiply方法进行逐点乘法。sparse.csr_matr

Matrix 上的 Python PCA 太大而无法放入内存

我有一个100,000行x27,000列的csv,我正在尝试对其进行PCA以生成100,000行X300列的矩阵。csv有9GB大。这是我目前正在做的事情:fromsklearn.decompositionimportPCAasRandomizedPCAimportcsvimportsysimportnumpyasnpimportpandasaspddataset=sys.argv[1]X=pd.DataFrame.from_csv(dataset)Y=X.pop("Y_Level")X=(X-X.mean())/(X.max()-X.min())Y=list(Y)dimensions

python - 将 scipy 稀疏矩阵存储为 HDF5

我想以HDF5格式压缩和存储一个巨大的Scipy矩阵。我该怎么做呢?我试过下面的代码:a=csr_matrix((dat,(row,col)),shape=(947969,36039))f=h5py.File('foo.h5','w')dset=f.create_dataset("init",data=a,dtype=int,compression='gzip')我遇到这样的错误,TypeError:Scalardatasetsdon'tsupportchunk/filteroptionsIOError:Can'tprepareforwritingdata(Noappropriatef

python - 将一列零添加到 csr_matrix

我有一个MxN稀疏csr_matrix,我想在矩阵的右侧添加一些只有零的列。原则上,数组indptr、indices和data保持不变,所以我只想改变矩阵的维度。但是,这似乎没有实现。>>>A=csr_matrix(np.identity(5),dtype=int)>>>A.toarray()array([[1,0,0,0,0],[0,1,0,0,0],[0,0,1,0,0],[0,0,0,1,0],[0,0,0,0,1]])>>>A.shape(5,5)>>>A.shape=((5,7))NotImplementedError:Reshapingnotimplementedforcs

python - 如何在 TensorFlow 中使用稀疏张量进行计算?

我想以批处理方式从TensorFlow中的DNC实现中实现这个公式。对于批量密集张量,它非常简单。#w[B,N],p[B,N],L[B,N,N],B=batch_sizedot_prod=tf.batch_matmul(tf.expand_dims(w,axis=2),tf.expand_dims(p,axis=1))one_prod=1-tf.expand_dims(w,1)-tf.expand_dims(w,2)L=one_prod*pre_L+dot_prod有没有办法用稀疏张量来实现这个?w、p和L稀疏但TensorFlow缺少稀疏批量矩阵相乘和稀疏索引。