草庐IT

99乘法表

全部标签

python - NumPy 中的逐元素矩阵乘法

我第一次真正涉足Python和NumPy来做一些图像处理。我有一个加载为3维NumPy数组的图像,其中轴0代表图像波段,而轴1和2代表像素的列和行。由此,我需要采用代表每个像素的3x1矩阵并执行一些操作,从而生成另一个3x1矩阵,该矩阵将用于构建结果图像。我的第一种方法(简化并使用随机数据)如下所示:importnumpyasnpimportrandomfactor=np.random.rand(3,3)input=np.random.rand(3,100,100)results=np.zeros((3,100,100))forxinrange(100):foryinrange(100

python - 几何矩阵乘法

我正在从事一个构建几何(而不是算术)神经网络的项目。为了构造传递函数,我想用几何求和代替算术求和。为了让事情更清楚,我将用代码来描述:defarithmetic_matrix_multiplication(matrix1,matrix2):new_matrix=np.zeros(len(matrix1),len(matrix2[0]))foriinrange(len(matrix1)):forjinrange(len(matrix2[0])):forkinrange(len(matrix2)):new_matrix[i][j]+=matrix1[i][k]*matrix2[k][j]r

python - Pandas DataFrame 和系列的矩阵乘法

我想做一个pandas数据框和一个系列的矩阵乘法df=pandas.DataFrame({'a':[4,1,3],'b':[5,2,4]},index=[1,2,3])ser=pandas.Series([0.6,0.4])df是,ab145212334是,00.610.4我想要的结果是矩阵乘积,像这样答案是,我可以通过使用numpy点运算符并重建我的dataFrame来做到这一点c=a.values.dot(b.transpose())c=pandas.DataFrame(c,index=a.index,columns=['ans'])printcans14.421.433.4pan

python - 为什么列表理解比 numpy 的数组乘法快得多?

最近我回复了THIS需要2个列表相乘的问题,一些用户建议使用numpy的以下方法,我认为这是正确的方法:(a.T*b).T我还发现aray.resize()具有与此相同的性能。无论如何,另一个答案建议使用列表理解的解决方案:[[m*nforninsecond]form,secondinzip(b,a)]但在基准测试之后,我发现列表理解比numpy执行得更快:fromtimeitimporttimeits1="""a=[[2,3,5],[3,6,2],[1,3,2]]b=[4,2,1][[m*nforninsecond]form,secondinzip(b,a)]"""s2="""a=n

python - Python Numpy 中多个数组的逐元素乘法

编写一些量子力学例程时,我发现了Python的NumPy的一个奇怪行为。当我对两个以上的数组使用NumPy的乘法时,我得到了错误的结果。在下面的代码中,我必须写:f=np.multiply(rowH,colH)A[row][col]=np.sum(np.multiply(f,w))产生正确的结果。然而,我最初的表述是这样的:A[row][col]=np.sum(np.multiply(rowH,colH,w))这不会产生错误信息,但会产生错误的结果。我认为我可以为numpy的乘法例程提供三个数组的错误在哪里?完整代码如下:fromnumpy.polynomial.hermiteimpo

python - 数组和向量的 numpy 逐元素乘法

我想做这样的事情:a=#multi-dimensionalnumpyarrayares=#multi-dimarray,sameshapeasaa.shape>>>(45,72,37,24)#therelevantpointisthatalldimensionaredifferentv=#1Dnumpyarray,i.e.avectorv.shape>>>(37)#notethatvhasthesamelengthasthe3rddimensionofaforiinrange(37):ares[:,:,i,:]=a[:,:,i,:]*v[i]我认为必须有一种更紧凑的方法来使用numpy

python - 二次形式 numpy 数组乘法的最快方法是什么?

我已经尝试过这两种选择objective=lambdaA,x:(np.dot(x.T,np.dot(A,x)))[0,0]objective=lambdaA,x:(np.matrix(x).T*np.matrix(A)*np.matrix(x))[0,0]对于初级算法,我的算法有5秒的运行时间有了中学,我有14秒使用MATLAB我有2秒我想使用Numpy,但显然我需要一种方法来改善这种糟糕的结果。如何获得更快的二次型矩阵,向量积?注意:我分析了代码,这个lambda函数吸收了所有的汁液。改进:我只是删除了scipy和numpy的原生Ubuntu包,然后安装了以下内容sudopipins

python - 为什么按位运算符比乘法/除法/模运算慢?

众所周知,乘法、整数除法和二的幂模可以更有效地重写为按位运算:>>>x=randint(50000,100000)>>>x>>x>>2==x//4True>>>x&3==x%4True在C/C++、Java等编译型语言中,测试表明按位运算通常比算术运算快。(参见here和here)。然而,当我在Python中测试这些时,我得到了相反的结果:In[1]:fromrandomimportrandint...:nums=[randint(0,1000000)for_inrange(100000)]In[2]:%timeit[i*8foriinnums]7.73ms±397µsperloop(

python - 如何并行化 scipy 稀疏矩阵乘法

我有一个scipy.sparse.csr_matrix格式的大稀疏矩阵X,我想利用并行性将其乘以一个numpy数组W。经过一些研究,我发现我需要在多处理中使用Array以避免在进程之间复制X和W(来自例如:HowtocombinePool.mapwithArray(sharedmemory)inPythonmultiprocessing?和IssharedreadonlydatacopiedtodifferentprocessesforPythonmultiprocessing?)。这是我最近的尝试importmultiprocessingimportnumpyimportscipy.

python - numpy/pandas 矩阵乘法的多线程?

我真的很想知道如何在numpy/pandas上利用多核处理进行矩阵乘法。我正在尝试的是:M=pd.DataFrame(...)#superhighdimensionalsquarematrix.A=M.T.dot(M)这需要大量的处理时间,因为乘积的和很多,而且我认为使用多线程进行巨大的矩阵乘法很简单。所以,我仔细地谷歌搜索,但我找不到如何在numpy/pandas上做到这一点。我是否需要使用一些python内置线程库手动编写多线程代码? 最佳答案 在NumPy中,多线程矩阵乘法可以通过BLAS(基本线性代数子例程)的多线程实现来实