【问题标题】:Applying a function along a numpy array using indexes as parameters使用索引作为参数沿 numpy 数组应用函数
【发布时间】:2022-01-13 11:48:38
【问题描述】:

我试图找到一种方法,使用每个值的索引作为参数,通过整个 ndarray 运行函数。常规循环非常慢,我找不到使用 numpy 内置函数使其工作的方法。下一个示例代码总结了我正在尝试做的事情。提前致谢。

import numpy as np

arr = np.arange(10).reshape(2, 5)

print(arr)

def example_func(row, col, value):
    return(row + col + value)

for row in range(arr.shape[0]):
    for col in range(arr.shape[1]):
        arr[row, col] = example_func(row, col, arr[row, col])

print(arr)
[[0 1 2 3 4]
 [5 6 7 8 9]]

[[ 0  2  4  6  8]
 [ 6  8 10 12 14]]

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    您尝试做的事情可以通过meshgrid 来完成。

    从坐标向量返回坐标矩阵。

    n_rows, n_cols = arr.shape
    col_matrix, row_matrix = np.meshgrid(np.arange(n_cols), np.arange(n_rows))
    result = arr + col_matrix + row_matrix
    print(result)
    

    返回

    [[ 0  2  4  6  8]
     [ 6  8 10 12 14]]
    

    【讨论】:

      猜你喜欢
      • 2017-08-18
      • 2015-09-17
      • 2016-07-03
      • 1970-01-01
      • 2019-11-18
      • 2017-11-20
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      相关资源
      最近更新 更多