【问题标题】:How to apply an index-dependent function to a numpy ndarray?如何将索引相关函数应用于 numpy ndarray?
【发布时间】:2018-08-14 12:43:44
【问题描述】:

所以 numpy ndarrays 非常方便,因为您只需为任何一维函数 f 和任何 ndarray A 输入 f(A) ,它将按元素应用 f。有人告诉我,这也是将函数应用于 ndarray 并避免 for 循环的一种非常有效的方法。避免 for 循环,这是我被告知的。

事实证明,现在我需要应用一个函数 f(A),它不仅是一维的,而且需要了解每个元素的索引元组,以便为​​每个元素返回正确的值。在这些情况下,有没有办法避免使用 for 循环或显式递归并继续使用 ndarray 上的直接函数应用程序?还是我没有选择?

【问题讨论】:

    标签: numpy-ndarray


    【解决方案1】:

    使用numpy.meshgrid 生成对应于数组中每个元素的索引元组的坐标矩阵。然后让你的函数也依赖这些坐标。

    例如a 是一个三维数组。

    x, y, z = np.meshgrid(np.arange(a.shape[0]), np.arange(a.shape[1]), np.arange(a.shape[2]), indexing='ij')
    

    给出三个数组x, y, z,其中包含每个位置的x、y 和z 坐标。数组 a 上的函数将通过提供索引数组来扩展。

    f(a, x, y, z)
    

    注意索引/方向的顺序。检查indexing的选项。

    【讨论】:

      猜你喜欢
      • 2018-10-10
      • 2022-10-04
      • 2020-03-22
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2019-05-21
      相关资源
      最近更新 更多