【问题标题】:Passing a numpy array of arrays as an asterisk into a function changes the value of the first item in the array将数组的 numpy 数组作为星号传递给函数会更改数组中第一项的值
【发布时间】:2021-11-16 16:55:57
【问题描述】:

我有一个返回 numpy ndarray 的函数,它返回的值看起来正确:

两个数组,其值为2.52.。我需要将此变量传递给一个函数,但如果我没有星号,它会给我这个错误:

函数接受 1 个位置参数,但给出了 2 个

所以我假设它正在解析值并假设这两个数组应该是两个参数,即使函数接受一个参数。

获取数组数组的函数如下所示:

def validate_arrays(*arrays):

这就是数组变量传入函数时的样子:

第一个值被更改为类引用或其他东西。我感觉这里不适合使用星号。但这是我在查找这些东西时发现的。而且我对 Python 很陌生,所以我不知道您通常如何处理这种情况。任何帮助将不胜感激。

【问题讨论】:

  • 请注意,从您的屏幕截图中并不清楚(不要发布屏幕截图),但这看起来像是一个包含两个单元素数组的列表,而不是一个列表。在任何情况下,对象在传递给函数时都不会被复制,如果这是您所要求的。

标签: python python-3.x numpy


【解决方案1】:

问题在于该函数在一个类中,并且该类假定第一个值是self。因此将定义更改为:

def validate_arrays(self, arrays):

修复它。

【讨论】:

    猜你喜欢
    • 2020-06-19
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2018-04-04
    相关资源
    最近更新 更多