问题标签 [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 - Python,Numpy,多维数组相加的方法(广播)
我有许多具有共同索引的不同大小的数组。
例如,
我想将它们一起添加到一个新的数组中,Arr3 是三维的。例如
请注意,在这种情况下,值应该对齐,例如
我一直在尝试使用以下方法
现在,当将两个方阵相加时,我已经能够完成这项工作。
但是,在我的实际程序中,我不会有这个问题的方阵。此外,当您开始按如下方式向上移动维数时,此方法会占用大量内存。
所以我的问题有两个部分:
- 是否可以从具有共同“共享”轴的两个不同形状的 2D 阵列创建 3D 阵列。
- 这种方法可以在高阶维度上扩展吗?
非常感谢任何帮助。
python - np.array 中的广播函数调用
我正在尝试创建一个填充了一个对象的 NumPy 数组,我想知道是否有一种方法可以向整个数组广播,以便每个对象执行某些操作。
代码:
就目前而言,这会返回一个错误。我尝试按照手册将 dtype 更改为:_object,但似乎没有任何效果。
python - numpy.einsum 中的省略号广播
我无法理解为什么以下内容不起作用:
我有一个可以是三维或六维的数组前置因子。我有一个具有四个维度的偶极子阵列。dipoles 的前三个维度与 prefactor的后三个维度匹配。
由于我不知道prefactor的形状,我使用省略号来说明prefactor中的三个可选维度:
(在这里的例子中,prefactor.shape 是 (1, 1, 1, 160, 160, 128) 和 dipoles.shape 是 (160, 160, 128, 3)。执行时,我得到错误:
操作数 1 没有足够的维度来匹配广播,并且无法扩展,因为在开始和结束时都指定了爱因斯坦和下标
但是,当我在第二项中添加省略号时,它确实有效:
只是我不明白为什么,因为那里不需要省略号。有人知道这里发生了什么吗?
在http://comments.gmane.org/gmane.comp.python.numeric.general/53705上提出了同样的问题,但还没有令人满意的答案。
python - 有没有办法使用 numpy 广播不使用任意 M x N 矩阵?
我有多个 0 和 1 的矩阵,我想找到它们的 NOT 版本。例如:
会成为:
现在我有
这工作得很好,但我有一种感觉,我已经看到这真的很简单,只是通过广播。不幸的是,我查到的所有东西都没有敲响。我假设类似的操作将用于对矩阵的值进行阈值处理(即类似的东西1 if x > .5 else 0
)。
python - python中的自动数组演算(numpy)
我有一个依赖于几个变量的函数,比如说y=f(x1,x2,x3,x4)
. 如果每个变量都是一个简单的数字,那么结果应该是一个普通的数字。如果其中一个变量是一个数组,我需要结果也是一个数组。依此类推:如果两个变量是数组,我需要结果是一个二维数组。等等。
例子:
怎么做?(为了让我的程序的非 Python 读者尽可能清楚?)
python - 使用 numpy 获取 3D 空间中所有对象相对于彼此的位置
我想得到一个numpy数组中向量对的所有排列之间的差异。
在我的特定用例中,这些向量是对象列表的 3D 位置向量。
因此,如果我有一个数组r = [r1, r2, r3]
wherer1
和是 3 维向量,我想要以下内容r2
:r3
将-
操作按元素应用于向量的位置。
基本上,这个向量等价于:
但是,该outer
函数似乎在减法之前使我的向量数组变平,然后对其进行整形。例如:
我期待的结果是:
我可以在不迭代数组的情况下实现上述目标吗?
python - 如何沿矩阵轴执行滚动求和?
X
给定具有T
行和列的矩阵k
:
如何X
使用 lag 沿行轴执行滚动累积和H
?
请注意,在广播/矢量化最佳实践下,最好避免跨步和卷积。
python - 在两个向量上广播一个函数以获得一个二维 numpy 数组
我想在向量上广播一个函数 f,以便结果是一个矩阵 P,其中 P[i,j] = f(v[i], v[j])。我知道我可以简单地做到这一点:
或更老套:
但我正在寻找最快和最整洁的方法来做到这一点。这似乎是 numpy 应该内置的广播功能。有什么建议么?
python - numpy.newaxis 如何工作以及何时使用它?
当我尝试
结果给了我一个 x 轴从 0 到 1 的二维图框。但是,当我尝试使用numpy.newaxis
切片向量时,
除了将行向量更改为列向量之外,是否相同?
一般情况下,有什么用numpy.newaxis
,应该在什么情况下使用呢?
python - NumPy 广播不起作用
我正在尝试广播两个向量之间的差异。这适用于像这样的简单情况:
但是当我尝试做同样的事情但尺寸更大时,这是行不通的
我想执行data - centers
,所以我可以得到输出: