Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to apply a function with different arguments on a NumPy 1d-array to make a 2d-array

Tags:

python

numpy

Suppose I have a NumPy 1d-array a:

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

and I have a function foo:

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

I want to apply foo on a with, say, p from 1 to 3 to make a 2d-array.

like image 224
abbassix Avatar asked Nov 14 '25 18:11

abbassix


1 Answers

Or just:

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

With a function:

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)
like image 158
U12-Forward Avatar answered Nov 17 '25 09:11

U12-Forward



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!