【发布时间】:2015-10-20 10:22:15
【问题描述】:
我被要求在二维数组/矩阵(行、列)中尝试 numpy 计算值,其中这些值取决于相邻值。我承认,这不仅仅是将矩阵与标量或类似的东西相乘,即使它可能会简化为一系列这样的步骤。
尽管这是家庭作业,但我的问题范围更广,而不仅仅是要求提供给我的解决方案。
我已经阅读了 numpy 中的广播,即矢量化,我可以想象一种方法是将其实现为新的 ufunc 并在矩阵上运行它。但是,我有点担心我可能面临的限制 - 一个 numpy ufunc 可以访问相邻元素,而不是它在当前迭代期间计算的元素吗?从概念上讲:
for x in columns:
for y in rows:
a[x, y] = a[x, y - 1] + a[x, y + 1] + a[x - 1, y] + a[x + 1, y] + A + B + b[x, y] # '+' is just an example of a binary op here.
意味着每个单元格中的值取决于相邻单元格以及另一个矩阵中的一些常数甚至值。
阅读 numpy 文档对我帮助不大。在 numpy 中执行此操作的首选/惯用方式是什么?
【问题讨论】:
-
投票结束此问题的人,请提供理由,否则我不知道出了什么问题,而且我的下一个类似风格的问题很有可能也会获得接近投票,依此类推。
-
我唯一能发现这个问题“不好”的地方是你写的过于详尽的散文——我的建议是尽量减少你提到的所有“与问题无关”的事实,但随后再次,我完全赞成人们提及目标和背景。恕我直言,您的文字只是有点太重复,但又不是太宽泛。
标签: python arrays numpy vectorization