草庐IT

DOT-MATRIX

全部标签

python - 如何将 numpy.matrix 提升为非整数幂?

numpy.matrix的**运算符不支持非整数幂:>>>mmatrix([[1.,0.],[0.5,0.5]])>>>m**2.5TypeError:exponentmustbeaninteger我想要的是octave:14>[10;.5.5]^2.5ans=1.000000.000000.823220.17678我可以使用numpy或scipy来实现吗?备注:这不是逐元素操作。正如thispost中所述,它是一个矩阵(在线性代数中)的某个幂次。. 最佳答案 你可以使用scipy.linalg.fractional_matrix_

python - 为什么 B = numpy.dot(A,x) 循环执行 B[i, :, :] = numpy. dot(A[i, :, :], x) ) 如此慢?

我得到了一些我无法解释的效率测试结果。我想组装一个矩阵B,其第i个条目B[i,:,:]=A[i,:,:].dot(x),其中每个A[i,:,:]是一个二维矩阵,x也是。我可以通过三种方式来执行此操作,为了测试性能,我制作了随机(numpy.random.randn)矩阵A=(10,1000,1000),x=(1000,1200)。我得到以下时间结果:(1)单个多维点积B=A.dot(x)totaltime:102.361s(2)遍历i并进行二维点积#initializeB=np.zeros([dim1,dim2,dim3])foriinrange(A.shape[0]):B[i,:,:

Python NumPy : How to fill a matrix using an equation

我想初始化一个矩阵A,使用等式A_i,j=f(i,j)得到一些f(它是这是什么并不重要)。我怎样才能简洁地避免出现两个for循环的情况? 最佳答案 numpy.fromfunction符合这里的要求。来自文档的示例:>>>importnumpyasnp>>>np.fromfunction(lambdai,j:i+j,(3,3),dtype=int)array([[0,1,2],[1,2,3],[2,3,4]]) 关于PythonNumPy:Howtofillamatrixusingane

python - 使用 Cython 优化 numpy.dot

我有以下一段代码,我想使用Cython对其进行优化:sim=numpy.dot(v1,v2)/(sqrt(numpy.dot(v1,v1))*sqrt(numpy.dot(v2,v2)))dist=1-simreturndist我已经编写并编译了.pyx文件,当我运行代码时,我没有看到任何显着的性能改进。根据Cython文档,我必须添加c_types。Cython生成的HTML文件表明瓶颈是点积(当然这是意料之中的)。这是否意味着我必须为点积定义一个C函数?如果是,我该怎么做?编辑:经过一些研究,我想出了以下代码。改进只是微不足道的。我不确定我是否可以做些什么来改进它:from__fu

python - scipy.stats.multivariate_normal 提高 `LinAlgError: singular matrix` 即使我的协方差矩阵是可逆的

我在尝试使用scipy.stats.multivariate_normal时遇到问题,希望你们中的某个人能够提供帮助。我有一个2x2矩阵,可以找到使用numpy.linalg.inv()的逆矩阵,但是当我尝试将其用作multivariate_normal中的协方差矩阵时我收到LinAlgError声明它是一个奇异矩阵:In[89]:cov=np.array([[3.2e5**2,3.2e5*0.103*-0.459],[3.2e5*0.103*-0.459,0.103**2]])In[90]:np.linalg.inv(cov)Out[90]:array([[1.23722158e-1

Python:使用 "dot notation"访问 YAML 值

我正在使用YAML配置文件。所以这是在Python中加载我的配置的代码:importosimportyamlwithopen('./config.yml')asfile:config=yaml.safe_load(file)这段代码实际上创建了一个字典。现在的问题是,为了访问我需要使用大量括号的值。YAML:mysql:user:pass:secretpython:importosimportyamlwithopen('./config.yml')asfile:config=yaml.safe_load(file)print(config['mysql']['user']['pass'

python - NumPy 错误 : Singular matrix

错误Numpyerror:Matrixissingular具体是什么意思(使用linalg.solve函数时)?我在Google上查看过,但找不到任何可以说明此错误发生时间的信息。 最佳答案 奇异矩阵是不可逆的。这意味着您要求解的方程组没有唯一解;linalg.solve无法处理这个问题。您可能会发现linalg.lstsq提供了一个可用的解决方案。 关于python-NumPy错误:Singularmatrix,我们在StackOverflow上找到一个类似的问题:

python - 访问 coo_matrix 中的元素

这是一个非常简单的问题。对于像coo_matrix这样的SciPy稀疏矩阵,如何访问单个元素?类比本征线性代数库。可以使用coeffRef访问元素(i,j),如下所示:myMatrix.coeffRef(i,j) 最佳答案 来自coo_matrix的文档:|IntendedUsage|-COOisafastformatforconstructingsparsematrices|-Onceamatrixhasbeenconstructed,converttoCSRor|CSCformatforfastarithmeticandmatr

将 Ubuntu 从 13.04 更新到 13.10 后,Python Numpy.dot 运行速度慢了 20 倍

正如标题所暗示的那样,numpy.dot(我认为numpy是通用的)在更新我的系统后执行速度要慢得多。我要比较的示例代码是:fromnumpyimport*importtimeA=random.random((1000,1000))B=random.random((1000,1000))st=time.time();dot(A,B);end=time.time();printend-st以下代码在我的另一台计算机上耗时约0.09秒(有问题的计算机过去运行速度与另一台计算机一样快),但代码在有问题的计算机上耗时约0.26秒。这是我解决这个问题的尝试。我的第一个猜测是,1:ATLAS没有连

python - numpy matrix trickery - 逆时矩阵之和

我正在尝试执行以下操作,并重复直到收敛:其中每个Xi是nxp,还有r他们中的一个rxnxp名为samples的数组.U是nxn,V是pxp.(我得到了matrixnormaldistribution的MLE。)尺寸都可能很大;我期待的事情至少在r=200的顺序上,n=1000,p=1000.我当前的代码可以V=np.einsum('aji,jk,akl->il',samples,np.linalg.inv(U)/(r*n),samples)U=np.einsum('aij,jk,alk->il',samples,np.linalg.inv(V)/(r*p),samples)这没问题,但