首页 > 解决方案 > 如何在 NumPy 一维数组上应用具有不同参数的函数来制作二维数组

问题描述

假设我有一个 NumPy 1d-array a

a = np.array([1, 2, 3])

我有一个功能foo

def foo(x, p):
    ...
    return y

我想申请fooa比如说,p从 1 到 3 来制作一个二维数组。

标签: pythonnumpy

解决方案


要不就:

>>> a[:, None] ** np.arange(1, 4)
array([[ 1,  1,  1],
       [ 2,  4,  8],
       [ 3,  9, 27]], dtype=int32)
>>> 

有一个功能:

def foo(x, p):
    return x ** p

np.apply_along_axis(lambda x: foo(x, np.arange(1, 4)), 1, a[:, None])

array([[ 1,  1,  1],
       [ 2,  4,  8],
       [ 3,  9, 27]], dtype=int32)

推荐阅读