问题标签 [elementwise-operations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
350451 浏览

python - 如何在 numpy 中获得逐元素矩阵乘法(Hadamard 乘积)?

我有两个矩阵

我想得到元素乘积[[1*5,2*6], [3*7,4*8]], 等于

[[5,12], [21,32]]

我试过了

但都给出了结果

[[19 22], [43 50]]

这是矩阵乘积,而不是元素乘积。如何使用内置函数获得逐元素产品(又名 Hadamard 产品)?

0 投票
1 回答
645 浏览

python - Numpy element-wise 在操作中

假设我有一个长度为 n 的列向量 y,并且我有一个大小为 n*m 的矩阵 X。我想检查 y 中的每个元素 i,该元素是否在 X 中的相应行中。最有效的方法是什么?

例如:

y = [1,2,3,4].T

那么输出应该是

哪个更容易。

当然,我们可以使用 for 循环来遍历 y 和 X,但是有没有更有效的方法呢?

0 投票
1 回答
37 浏览

arrays - 如何在逐元素数组乘法中设置 0 x 0 = 1?MATLAB

我有两个长度相同的列向量 A 和 B。

在这两个向量中,它们的元素只有 3 个可能的值:-1、0 和 1。

当我将 A 乘以 B 元素时,我希望得到 1x1、1x(-1) 和 (-1)x(-1) 的预期结果。

但是,在这里,当 0 是乘法中的一项时,我想得到以下结果:

0x0 = 1

0x1 = -1

0x(-1) = -1

在 MATLAB 中逐元素乘法很容易:

times(A,B) or A.*B

我想知道如何为操作设置预定义结果,例如 0x0 =1。知道了这一点,我就能应付其他的了。

0 投票
1 回答
2845 浏览

python - 使用熊猫系列中前一个“行”的值

我有一个看起来像这样的 CSV(当用 带入 pandas Dataframe 时 read_csv(),它​​看起来是一样的)。

在此处输入图像描述

我想根据以下逻辑更新列ad_requests中的值:

对于给定的行,如果ad_requests有值,则不要理会它。否则,将前一行的ad_requests值减去前一行的impresions值给它。所以在第一个例子中,我们希望得到:

在此处输入图像描述

我部分到达那里:

这就是我卡住的地方。之后else,我想“返回”并访问前一个“行”,尽管我知道这不是 pandas 的用途。需要注意的另一件事是,行将始终按列ad_tag_name分为三组。如果 I pd.groupby["ad_tag_name"],我可以把它变成 alist并开始切片和索引,但是我认为在 pandas 中必须有更好的方法来做到这一点(因为有很多东西)。

蟒蛇:2.7.10

熊猫:0.18.0

0 投票
2 回答
618 浏览

arrays - 通过对其他两个数组的所有元素应用二元运算在 Swift 中创建一个数组

Swift 中是否有一种通过对其他两个数组的元素应用二元运算来创建数组的简洁方法?

例如:

0 投票
1 回答
1381 浏览

python - 如何在 Theano 中将矩阵的每一列乘以向量元素?

我有一个dvector有 100 个元素的 Theano。我还有一个 5 列 100 行的矩阵(换句话说,每列包含 100 个元素)。

现在我需要应用每列乘以向量的逐元素乘法。在 Theano 中正确的做法是什么?

我是否应该通过重复我的向量 5 次并将其转置然后将两个相同形状的矩阵元素相乘来创建一个新矩阵?

添加

我了解到,在 numpy 中,要实现所需的行为,我只需要将我的向量声明为具有一列的 2D 数组。换句话说,我需要用“列”向量替换“行”向量(或者我需要垂直写入值,而不是水平写入)。在这种情况下,numpy 将根据需要广播向量(列)(我的矩阵的每一列都将乘以我的向量元素)。但是,看起来 Theano 并没有继承 numpy 的这种行为:

这是我得到的错误:

顺便说一句,如果我x按以下方式定义,代码就可以工作:

0 投票
1 回答
235 浏览

python - 在 Theano 中,张量点和元素乘法之间有什么关系吗?

假设我们有两个具有相同维数的张量 (A和)。B我们可以将它们与 相乘tensordot。例如:

在这种情况下,我们将第一个张量的轴与第二个张量的一些轴“配对”,然后对这些“配对”轴求和

在上面的例子中,第一个张量的第一个和最后一个轴分别与第二个张量的第一个和最后一个轴配对。

或者,我们可以将两个张量逐元素相乘:

在这种情况下,我们将第一个张量的所有轴与第二个张量的所有对应轴“配对”(第一个与第一个,第二个与第二个等等)。

现在,我想做一些介于上述两个操作之间的事情。详细信息:

  1. 我想将第一个张量的某个轴​​与第二个张量的某个轴​​配对(就像 w 在 中做的那样tensordot)。所以,我不想将 A 的所有轴与 B 的所有轴配对。
  2. 我不想对所有成对的轴求和(就像我们在成对乘法中所做的那样,对成对的轴没有求和)。

这是我想以“数学”形式写的内容:

在theano中最好的方法是什么?

0 投票
1 回答
67 浏览

python - (x,y,1) * (x,y) 的元素乘法

我正在尝试获取 matrixA 和 matrixB 的元素乘法,但我得到了错误ValueError: operands could not be broadcast together with shapes (901,1249,1) (901,1249)

我相信这与两个矩阵的维度有关,因为它们不相同。实际上,从技术上讲,它们是相同的,因为它们是[901,1249,1]相同的,[901,1249]但 Python 似乎并不知道这一点。

如何将matrixA与matrixB相乘?

0 投票
2 回答
308 浏览

python-3.x - 在python中定义lambda函数时出现ValueError

ValueError在使用集成时收到一个,但我不明白为什么。这是我的简化代码:

Vl是三个数组的元素最小值。最后一行给出了例外:

有人可以解释错误并提出另一种进行这种集成的方法吗?

0 投票
2 回答
3765 浏览

numpy - numpy elementwise 外积

我想在numpy中做两个二维数组的元素外积。

一个简单的实现可以如下。

受堆栈溢出启发的更好解决方案。

我正在寻找摆脱 for 循环的矢量化实现。有人有想法吗?谢谢!