我可以将 numpy 数组作为参数传递给函数,就像变量一样吗?

问题描述 投票:0回答:3

想要将 numpy 数组作为参数传递给函数?这是怎么做到的?我可以像下面所示的那样简单地传递它吗?

def force(x,y,z):
     for i in range(N):
        for j in range(i+1,N,1):
            xij=x[i]-x[j]
            yij=y[i]-y[j]
            zij=z[i]-z[j]
python python-2.7 numpy
3个回答
11
投票

Python 是一种动态语言,这意味着编译期间不会进行类型检查。您可以将任何内容传递给函数。


3
投票

我相信在较新版本(我使用1.13)的numpy中,您可以通过将numpy数组传递给您为标量类型编写的函数来简单地调用该函数,它会自动将函数调用应用于numpy数组上的每个元素并返回你又是一个 numpy 数组

>>> import numpy as np
>>> squarer = lambda t: t ** 2
>>> x = np.array([1, 2, 3, 4, 5])
>>> squarer(x)
array([ 1,  4,  9, 16, 25])

0
投票

在 Python 3.11.6 中,您可以将 numpy 数组传递给用户定义的函数。应用于数组的函数和返回的对象是一个 numpy 数组:

>>> import numpy as np
>>> def f(x):
...     return 3*x**2 - 4*x + 5
... 
>>> f(3.0)
20.0
>>> xs = np.arange(-5,5,0.25)
>>> ys = f(xs)
>>> ys
array([100.    ,  91.6875,  83.75  ,  76.1875,  69.    ,  62.1875,
        55.75  ,  49.6875,  44.    ,  38.6875,  33.75  ,  29.1875,
        25.    ,  21.1875,  17.75  ,  14.6875,  12.    ,   9.6875,
         7.75  ,   6.1875,   5.    ,   4.1875,   3.75  ,   3.6875,
         4.    ,   4.6875,   5.75  ,   7.1875,   9.    ,  11.1875,
        13.75  ,  16.6875,  20.    ,  23.6875,  27.75  ,  32.1875,
        37.    ,  42.1875,  47.75  ,  53.6875])
>>> type(ys)
<class 'numpy.ndarray'>

# lifted from 
# https://github.com/karpathy/nn-zero-to-hero/blob/master/lectures/micrograd/micrograd_lecture_first_half_roughly.ipynb
© www.soinside.com 2019 - 2024. All rights reserved.