问题标签 [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 - Matlab相当于Numpy广播?
我试图找到某种方法从 Matlab 中的 3*(一个大数字)矩阵的每一列中减去一个大小为 3 的向量。当然我可以使用循环,但我试图找到一些更有效的解决方案,有点像 numpy 广播。哦,我不能使用 repmat 因为我没有足够的内存来使用它(因为它创建了另一个 3*(一个大数字)矩阵)......
这可能吗?
python - Numpy 数组广播规则
我在理解 Numpy 中数组广播的规则时遇到了一些麻烦。
显然,如果您对两个具有相同尺寸和形状的数组执行逐元素乘法,一切都很好。此外,如果将多维数组乘以标量,它也可以工作。这个我明白。
但是如果你有两个不同形状的 N 维数组,我不清楚广播规则到底是什么。该文档/教程解释说:为了广播,操作中两个数组的尾轴大小必须相同或其中之一必须是一个。
好的,所以我假设通过尾随轴他们指的N
是M x N
数组中的。那么,这意味着如果我尝试将两个具有相同列数的二维数组(矩阵)相乘,它应该可以工作吗?除了它不...
由于两者A
都有B
两列,我原以为这会起作用。所以,我可能在这里误解了“尾轴”一词,以及它如何应用于 N 维数组。
有人可以解释为什么我的示例不起作用,以及“尾随轴”是什么意思吗?
python - 有没有更好的方法来广播数组?
我想将一个数组广播b
到它与另一个数组进行算术运算时所采用的形状a
。
例如,如果a.shape = (3,3)
andb
是一个标量,我想得到一个数组,其形状是(3,3)
并且用标量填充。
一种方法是这样的:
虽然这实际上可行,但我不禁觉得它看起来有点奇怪,并且对于其他查看我正在尝试做的代码的人来说并不明显。
有没有更优雅的方法来做到这一点?我查看了 的文档np.broadcast
,但速度要慢几个数量级。
python - Numpy`ValueError:操作数无法与形状一起广播......`
我使用 python 2.7 并尝试预测从 1.00000000 到 3.0000000008 的一些随机数据。我的数组中有大约 196 个项目,我得到了错误
我似乎无法自己解决这个问题。任何帮助或相关文档的链接将不胜感激。
这是我正在使用的生成此错误的代码
python - numpy 3D meshgrid 仅作为视图
我有一个由间距定义的立方网格xi,yi,zi
:
我还在W
该网格上设置了一组标量值。W.shape() == size
. 我想使用scipy 的线性插值,它需要作为输入:
类
scipy.interpolate.LinearNDInterpolator(points, values)
:参数 :
points
: ndarray of floats, shape(npoints, ndims)
数据点坐标。
values
:浮点数或复数的ndarray,形状(npoints, ...)
数据值。
我如何创建一组假的points
(通过神奇的广播)xi,yi,zi
?现在我正在创建一个中间数组来馈送到插值函数 - 有没有更好的方法?
相关问题:3D 中的 Numpy meshgrid。这篇文章中的答案实际上创建了网格 - 我只想将其模拟为另一个函数的输入(首选纯 numpy 解决方案)。
numpy - 在numpy中交换多值的子集
给定一个如下所示的起始 numpy 数组:
当有重复时,将一组值交换为另一组值的最有效方法是什么?例如,让
一个低效的交换方法会迭代s1
,s2
因此:
作为输出给予
zip
有没有办法在没有循环的情况下基本上就地执行此操作?
python - Numpy:广播+布尔索引
我有以下 numpy 数组
如何将以下伪代码转换为高效的真实代码?数组可能很大,可能超过 1 亿个元素。
python - 跨索引数组 Numpy 广播
我正在寻找一种 Numpy(即希望更快)的方式来执行以下操作:
我想摆脱列表理解并做这样的事情(虽然,我知道这行不通)
arr
始终是长度等于 的长度的整数的嵌套列表x
。内部列表的长度不一定相同(即arr
是一个参差不齐的列表)
python - 将 Numpy 3D 数组乘以 1D 数组
我正在尝试将 3D 数组乘以 1D 数组,这样沿第 3(深度:d)维度的每个 2D 数组的计算方式如下:
1D_array[d]*2D_array
我最终得到一个看起来像的数组,比如:
这将是正确地将 np.ones((3,2,2)) 与 [1,2,3] 相乘的结果。
我已经尝试了一段时间,无论我做什么我都不能得到这个结果,只是主题的变化。我该如何正确地做到这一点?
谢谢你的帮助。
python - 将数组广播到不同的形状(添加“假”尺寸)
在 python 中(使用 numpy),我可以将数组广播到不同的形状:
有没有办法在fortran中达到同样的效果?我有一个子例程,它期望2D
传入一个数组——我想将我的一维数组“广播”到二维,正如我在上面演示的那样。看起来很重要,我的二维数组确实有一个明确的接口。
作为旁注,我认为这个功能可能是由reshape
内在提供的, - 类似于:
但在阅读文档后,我认为这是不可能的,因为order
似乎需要包括所有数字 1 到“N”。
编辑:为了更清楚一点,我正在寻找一种简单的方法来在输入上创建几个转换,a
例如:
情况1
和
案例2
任意维度的加分1 :
等等
1免责声明——我实际上并没有给回答者加分的超能力;-)