【问题标题】:numpy: applying scalar function to corresponding elements of different matricesnumpy:将标量函数应用于不同矩阵的相应元素
【发布时间】:2015-12-20 14:12:52
【问题描述】:

我有以下 4 个矩阵:

w = [[w1, w2, w3, w4], [w5, w6, w7, w8], ...]
x = [[x1, x2, x3, x4], [x5, x6, x7, x8], ...]
y = [[y1, y2, y3, x4], [y5, y6, y7, y8], ...]
z = [[z1, z2, z3, x4], [z5, z6, z7, z8], ...]

这些是 (n,m) 的形状。我想对每个矩阵的相应元素应用一个标量函数 f,这样得到的矩阵 res 也是 n x m,并且 res 的第 i、j 个元素是 func([[w[i,j], x[i,j]], [[y[i,j], z[i,j]]) 的结果

显然我可以尝试循环遍历每个元素,但是是否有一个矢量化/numpy 实现呢?

【问题讨论】:

  • 嗯。也许将wxyz 合并到一些N x M x 4 矩阵中并应用numpy.ix... 现在太累了,无法提出确切的细节。虽然它可能很慢...需要考虑。
  • 对于完全通用的 f(w,x,y,z) 我认为没有比 for 循环更有效的方法。你能提供一些关于 f 做什么的细节吗?

标签: python numpy


【解决方案1】:

制作 w, x, y, z 的广义函数,以矢量化方式逐元素应用它:http://docs.scipy.org/doc/numpy/reference/generated/numpy.vectorize.html

【讨论】:

  • 这会起作用,但通常不会比 for 循环快
猜你喜欢
  • 2019-04-20
  • 1970-01-01
  • 2021-06-20
  • 2022-12-12
  • 1970-01-01
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
  • 2016-02-20
相关资源
最近更新 更多