NumPy中的逐元素矩阵乘法

我正在第一次真正进军Python和NumPy进行图像处理。我将图像加载为3维NumPy数组,其中轴0代表图像带,而轴1和2代表像素的列和行。由此,我需要获取代表每个像素的3x1矩阵并执行一些操作,从而生成另一个3x1矩阵,该矩阵将用于构建结果图像。

我的第一种方法(经过简化并使用随机数据)如下所示:

import numpy as np
import random

factor = np.random.rand(3,3)
input = np.random.rand(3,100,100)
results = np.zeros((3,100,100))

for x in range(100):
    for y in range(100):
        results[:,x,y] = np.dot(factor,input[:,x,y])

但是,这让我感到不礼貌和低效。有没有一种方法可以在元素方面进行操作,例如:

results = np.dot(factor,input,ElementWiseOnAxis0)

在尝试找到该问题的解决方案时,我遇到了这个问题,这显然很相似。但是,作者无法解决他们满意的问题。我希望自2012年以来有所改变,或者我的问题与他们的问题有很大不同,以使其更容易解决。

法伦索斯

默认情况下,Numpy数组使用逐元素乘法。签出numpy.einsum和numpy.tensordot。我认为您要寻找的是这样的:

results = np.einsum('ij,jkl->ikl',factor,input)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Matlab中的逐元素矩阵乘法

来自分类Dev

tensorflow逐元素矩阵乘法

来自分类Dev

Matlab逐元素矩阵乘法

来自分类Dev

在Sympy中获取矩阵乘法的逐元素方程

来自分类Dev

TensorFlow中矩阵和向量的高效逐元素乘法

来自分类Dev

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

来自分类Dev

Numpy逐元素乘法(意外的整数溢出)

来自分类Dev

numpy中的矩阵乘法

来自分类Dev

在矩阵中逐元素复制

来自分类Dev

MatLab中的逐元素指数乘法

来自分类Dev

MatLab中的逐元素指数乘法

来自分类Dev

如何对Numpy矩阵进行逐元素运算?

来自分类Dev

如何对Numpy矩阵进行逐元素算术?

来自分类Dev

Numpy中的乘法块矩阵

来自分类Dev

numpy中的矩阵加法/乘法

来自分类Dev

3D矩阵元素与2D矩阵副本的高效逐元素乘法?

来自分类Dev

python中矩阵的逐元素运算

来自分类Dev

MATLAB - 使用两个不同大小矩阵的逐元素矩阵乘法

来自分类Dev

Haskell中列表的逐元素加法(乘法,乘幂等)

来自分类Dev

Haskell中列表的逐元素加法(乘法,乘幂等)

来自分类Dev

在numpy数组中逐元素应用操作

来自分类Dev

Theano中的元素明智矩阵乘法

来自分类Dev

Rcpp中的元素明智矩阵乘法

来自分类Dev

Theano中的元素明智矩阵乘法

来自分类Dev

numpy中的矩阵乘法样式加法

来自分类Dev

numpy中的3d矩阵乘法

来自分类Dev

numpy中的矩阵重塑和乘法

来自分类Dev

逐元素矩阵乘法:R与Rcpp(如何加快此代码的速度?)

来自分类Dev

Numpy的多重矩阵乘法