【问题标题】:Can i pass a numpy array as an argument to a function, just like a variable?我可以像变量一样将 numpy 数组作为参数传递给函数吗?
【发布时间】:2016-03-01 07:30:13
【问题描述】:

是否希望将 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


【解决方案1】:

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

【讨论】:

  • NumPy 对其内部数组进行了某种特殊处理(尽管我不知道细节),如果添加到此中会很好。
【解决方案2】:

我相信在 numpy 的较新版本(我使用 1.13)中,您可以通过将 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])

【讨论】:

  • 你好,你用 Python 3 试过了吗?当我传入列表时,我得到了标量。
猜你喜欢
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
  • 2016-11-06
  • 1970-01-01
  • 2013-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多