首页 > TAG信息列表 > linear-algebra

numpy积或张量积问题

如何无循环计算该乘积?我想我需要使用numpy.tensordot,但是我似乎无法正确设置它.这是循环版本: import numpy as np a = np.random.rand(5,5,3,3) b = np.random.rand(5,5,3,3) c = np.zeros(a.shape[:2]) for i in range(c.shape[0]): for j in range(c.shape[1]): c

如何在python中计算正交向量?

我有以下代码来计算每个向量的正交向量,这些向量来自i,j维矩阵.因此,矩阵中的每一行都是一个向量.这是代码: for i in range(data.shape[0]): for j in range(data.shape[1]): s=0 #row counter set to 0 if j == data.shape[1]-1: #check i

python-带theano的矩阵三元产品

这个问题和这里的Matrix/Tensor Triple Product?差不多,只是theano的问题. 所以我有三个矩阵A,B,C,它们的大小分别为n * r,m * r,l * r,并且我想计算由三重(三线性)乘积得到的形状为(n,m,l)的3D张量: X[i,j,k] = \sum_a A[i,a] B[j,a] C[k,a] A,B和C是共享变量: A = theano.shared

高效求解多个线性最小二乘系统

我必须找到大于10 ^ 7方程组的最佳解决方案,其中每个方程组都有2个变量中的5个方程式(5个测量值可以找到2个参数,长序列中的误差最小). 以下代码(通常用于进行曲线拟合)可以满足我的要求: #Create_example_Data n = 100 T_Arm = np.arange(10*n).reshape(-1, 5, 2) Erg = np.arange

c#-到有限线之间的最近距离

我有此函数计算两条无限线之间的最近距离. public static double GetClosestDistanceBetweenLines(Vector3 line1Point, Vector3 line1Vector, Vector3 line2Point, Vector3 line2Vector) { var u = line1Vector; var v = line2Vector; var w = l

PHP矩阵逆

我看到this question,然后弹出这个主意. 有没有一种有效的方法可以在PHP中做到这一点? 编辑 最适合演示吗?解决方法:您可以为此使用梨包装Math_Matrix.

解决Python中的奇异值分解(SVD)

我正在尝试将IDL程序转换为Python.我必须解决通过以下方式实现的SVD的结果 from scipy.linalg import svd A = [[1,2,3],[4,5,6]] b = [4,4,5] u,w,v = svd(A) 而且这很好用,并且可以从IDL很好地翻译.下一步是IN IDL(!) x = svsol(u,w,v,b) python和IDL中的u几乎相同(其他矩阵

Python中多个张量的一般乘积

在python中(最好是在numpy数组框架下),最好是一次处理多个张量的乘积而不是使用numpy.tensordot一张一张地做的最佳方法?假设我们需要进行以下总结: sum over (i,j,k) of : A[i,j] * B[j,k,l] * C[k,i] 其中总和超过i,j,k和l的总和不是故意求和的-因此我们期望最后有一个一维矢量.

c-犰狳,如何长成一个向量并得到他的大小?

在我的最后一个问题中,Ilmari Karonen向我建议以离散模式求解拉普拉斯方程.我正在使用一个网格和每个节点上四个最近的邻居来计算未知高度. 因此要解决的系统可以用矩阵写: A(矩阵nxn)* U(向量n,未知数)= b(向量n,稳定) 昨晚我在网上逛逛C的线性代数.我的选择是Armadillo.但现在“ U

Matlab和Python采取的特征向量的符号差异

您能否解释一下为什么某些特征向量(2-4)存在符号差异?这种差异是否会影响进一步计算中的进一步计算,例如降维? Matlab: N = 5000; dataA = rand(N,5); covA = cov(dataA); %covA = dataA*dataA'/(length(dataA)-1); covA = covA + eps.*eye(size(covA)); [~,pA] = chol(covA); assert

numpy.einsum使用转置时间矩阵:x ^ T * x

对于2D矩阵X(形状(m,n)),我尝试计算X.T * X,其中*是矩阵乘法. Following the explanation on this post我希望能够使用np.einsum(‘ji,ik-> jk’,X,X)做到这一点,其中在LHS上,ji首先写第一个X参数的转置,然后将其乘以第二个X参数. 这不适用于错误(对于(m,n)=(3,4)): ValueError: o

python-向量线性回归

这是我尝试仅使用numpy和线性代数执行线性回归的尝试: def linear_function(w , x , b): return np.dot(w , x) + b x = np.array([[1, 1,1],[0, 0,0]]) y = np.array([0,1]) w = np.random.uniform(-1,1,(1 , 3)) print(w) learning_rate = .0001 xT = x.T yT = y.T for

用Python解决线性整数方程组

我正在寻找一种方法来解决Python中的线性方程组. 特别是,我正在寻找大于所有零的最小整数向量并求解给定方程.例如,我有以下等式: 并想解决. 在这种情况下,求解该方程的最小整数向量为. 但是,如何确定该解决方案?如果我使用scipy.optimize.nnls,例如 A = np.array([[1,-1,0],[0,2,-

python-获取np.linalg.svd的奇异值作为矩阵

给定5×4矩阵A = 一段Python代码构成矩阵 A = np.array([[1, 0, 0, 0], [0, 0, 0, 4], [0, 3, 0, 0], [0, 0, 0, 0], [2, 0, 0, 0]]) wolframalpha给出svd结果 具有奇异值Σ的向量采用这种形式 np.linalg.svd输出中

python – Numpy Cholesky分解LinAlgError

在我尝试对方差边界条件的2D数组的方差 – 协方差矩阵执行cholesky分解时,在某些参数组合下,我总是得到LinAlgError:矩阵不是正定的 – 无法计算Cholesky分解.不确定它是否是numpy.linalg或实现问题,因为脚本很简单: sigma = 3. U = 4 def FromListToGrid(l_): i = np.floor(l_

为什么在python中解决Xc = y的不同方法在它们不应该时给出不同的解?

我试图解决线性系统Xc = y是方形的.我知道解决这个问题的方法是: >使用逆c =< X ^ -1,y> >使用高斯消元法>使用伪逆 据我所知,这些与我认为的基本事实不符. >首先通过将度数为30的多项式拟合到频率为5的余弦来生成真值参数.所以我有y_truth = X * c_truth.>然后我检查以上三种方法是

如何在NumPy中将三角矩阵转换为方形?

我正在对冗余的完整矩阵进行一些计算(即可以是三角矩阵而不会丢失信息).我意识到我只能计算三角形的下半部分以获得更快的结果.一旦完成,我怎样才能将下三角形投射到鞋面上? 换句话说,我该如何反转np.tril方法? print DF_var.as_matrix() # [[1 1 0 1 1 1 0 1 0 0 0] # [1 1 1 1 1

Java / Scala中类似Scipy的功能?

我正在尝试将一些Python代码移植到Scala.它大量使用Numpy和Scipy.虽然我发现了许多密集矩阵/线性代数库,它们可以作为NumPy的一个适当的(但不是极好的)替代品,但我还没有找到任何提供我在SciPy中使用的功能的东西.特别是,我正在寻找一个支持稀疏部分特征分解的库(比如SciPy包装的ar

如何从Python中的一组线性方程中绘制平面?

我有一个带有三个方程的线性系统: x1– 2x2 + x3 = 0 2x2 – 8x3 = 8 -4x1 + 5x2 + 9x3 = -9 解集是(29,16,3),它是这些平面交叉处的点. 希望是否有人可以使用Matplotlib在3D空间中绘制这些平面,以清楚地显示问题.解决方法:你的第三个等式说: -4x 5y 9z – 9 = 0 或者一

python – 检查正定性或正半定性

我想用Python检查矩阵是正定的还是正半定的. 我怎样才能做到这一点? SciPy中是否有针对该模块或其他模块的专用功能?解决方法:我假设你已经知道你的矩阵是对称的. 对正定性的一个很好的测试(实际上是标准的!)是试图计算其Cholesky分解.如果你的矩阵是正定的,它就会成功. 这是最直接的

c – 与pdpotrf参数混淆

我想在分布式环境中进行Cholesky分解.为此目的,我使用pdpotrf().但是,我正在努力理解函数所需的参数,并且它们没有提供关于如何使用它的C示例(并且一个例子真的很棒). 假设我有一个我要分解的NxX矩阵.那么,参数应该具有什么值? uplo,a和info在我的脑海中有明确的定义.其余的怎么样?

python中稀疏矩阵的矩阵幂

我试图找到一种方法为稀疏矩阵M做矩阵幂:M ^ k = M * … * M k次其中*是矩阵乘法(numpy.dot),而不是逐元素乘法. 我知道如何为普通矩阵做到这一点: import numpy as np import scipy as sp N=100 k=3 M=(sp.sparse.spdiags(np.ones(N), 0, N, N)-sp.sparse.spdiags(np.ones(N), 2, N

python – 这个Numpy双循环的矢量化

如何对以下双循环进行矢量化? 我有一个N乘A矩阵和一个N乘B矩阵,其中A和B可能不同,N比A和B小得多.我想按如下方式生成A×B矩阵,但理想情况下没有循环: import numpy as np def foo(arr): # can be anything - just an example so that the code runs return np.sum(arr) nu

python – numpy中的快速外张量积

我有两个numpy数组: x of shape ((d1,...,d_m)) y of shape ((e_1,...e_n)) 我想形成外张量产品,即numpy数组 z of shape ((d1,...,d_m,e_1,...,e_n)) 这样的 z[i_1,...,i_n,i_{n+1}...,i_{m+n}] == x[i_1,...i_m]*y[i_{m+1},...,i_{m+n}] 我必须多次执行上面的外部乘法,所

什么是最广泛使用的C矢量/矩阵数学/线性代数库,以及它们的成本和收益权衡?

似乎许多项目慢慢需要进行矩阵数学运算,并陷入首先构建一些向量类并慢慢添加功能的陷阱,直到它们被捕获构建一个半定制的自定义线性代数库,并依赖于它. 我想避免这种情况,而不依赖于某些与切向相关的库(例如OpenCV,OpenSceneGraph). 有哪些常用的矩阵数学/线性代数库,为什么会决定