问题标签 [array-broadcasting]
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.
python - numpy 3D点积
我有两个 3dim numpy 矩阵,我想根据一个轴做一个点积而不使用循环:
a 具有 (7, 4, 15) 的形状,b 具有 (7, 4, 5) 的形状。我希望 c=np.dot(a,b) 的大小为 (7,5,15),如下所示:
但我正在寻找没有 for 循环的解决方案。就像是:
但是这个没有按预期工作。
我也试过这个:
没有按预期工作。
有任何想法吗?
python - 以 float 或 ndarray 作为参数的 numpy 函数
考虑以下代码。
第一个电话f(x1, y1)
按预期工作。
第二次调用,浮动需要在它工作之前“转换”(我希望转换对用户透明,所以转换应该包含在函数的定义中)。
第三次调用根本不起作用,我不知道如何调整函数的定义,以便它与第一次调用相同,但对于网格上的某些点。
有任何想法吗?谢谢。
python - 如何仅用另一个数组的值替换 numpy 数组的值的一部分?
我正在尝试按照屏蔽广播的方式做一些事情,其中只广播某些值。
假设我有一个更大的数组更大的数组和一个更小的数组smaller_array:
现在,我只想要较小数组的前三个值来替换较大数组的某个部分的值,但是掩码并没有达到我希望的效果:
这只是返回与常规广播相同的内容,即:
而不是我所希望的
在通过覆盖之前剥离屏蔽值
也没有用,因为这会使阵列变平,使广播不兼容。
有没有其他方法可以达到同样的效果?
python - 使用 numpy.frompyfunc 将广播添加到带有参数的 python 函数
从一个数组db
(大约是(1e6, 300)
)和一个mask = [1, 0, 1]
向量中,我将目标定义为第一列中的 1。
我想创建一个out
向量,该向量由其中对应的行db
匹配mask
andtarget==1
和其他任何地方的零组成。
我已经定义了一个vline
函数,该函数将 amask
应用于每个数组行,np.array_equal(mask, mask & vector)
用于检查向量 101 和 111 是否适合掩码,然后仅保留索引 where target == 1
。
out
被初始化为array([0, 0, 0, 0, 0, 0])
vline
函数定义为:
for
通过在循环中逐行应用此函数,我得到了正确的结果:
现在我想vline
通过创建一个矢量化ufunc
:
但是ufunc
抱怨用这些形状广播输入:
python - 在numpy中乘以包含图像的张量
我有以下三阶张量。两个张量矩阵第一个张量包含 100 个 10x9 矩阵,第二个包含 100 个 3x10 矩阵(我刚刚在这个例子中填充了这些矩阵)。
我的目标是将矩阵乘以一对一的对应关系,这将产生一个具有形状的张量: (100, 3, 9)
这可以通过一个 for 循环来完成,该循环只压缩两个张量,然后取每个张量的点,但我正在寻找只需使用 numpy 运算符即可。到目前为止,这里有一些失败的尝试
尝试1:
尝试 1 的输出:
(100, 3, 100, 9)
这意味着它尝试了所有可能的组合......这不是我所追求的。
实际上没有其他尝试甚至编译。我尝试使用 np.tensordot , np.einsum (在这里阅读https://jameshensman.wordpress.com/2010/06/14/multiple-matrix-multiplication-in-numpy它应该可以完成这项工作,但我没有得到正确的爱因斯坦指数)同样在同一个链接中,还有一些我无法想象的疯狂张量立方体重塑方法。关于如何解决这个问题的任何建议/想法解释?
arrays - Numpy: Creating an (x,y,2,2) array from 4 (x,y) arrays
I'm having an issue with broadcasting. I want to be able to assign elements from 4 different arrays of shape x, y to 2x2 matrices without a for loop if possible.
obviously this doesn't work but I'd like x to come out an array of:
python - 多参数估计。广播问题
我需要使用非线性最小二乘回归来获取参数(kf、beta1、beta2、gamma)。错误消息是:“ValueError:操作数无法与形状 (4,7) (0,) 一起广播”
我用收集的下一个数据做了 4 次实验:
- flujo_ms(x-axis Data): 7个位置的数组
- “fri”:每个“fri”是一个包含 7 个位置的数组。
- brfv:取四个常数值,每个实验一个常数。
我想同时使用四个实验来最小化参数估计的误差。
arrays - 改变输入数组维度的广播函数
给定一些f
接受1D
数组并给出2D
数组的函数,是否可以将它有效地应用于NxM
数组的每一行A
?
更具体地说,我想申请数组np.triu
的每一行,然后连接所有结果。我可以通过NxM
A
B = np.dstack(map(np.triu, A))
这给出了MxMxN
矩阵。然而,这对于大 N 来说不是很有效。不幸的是,np.apply_along_axis
这里不能使用该函数,因为f
会改变维度。
了解 NumPy 在高效广播方面的强大功能后,我几乎可以肯定存在更好的解决方案来解决我的问题。