【问题标题】:np.array to a function in python - 'list' object is not callablenp.array 到 python 中的函数 - 'list' 对象不可调用
【发布时间】:2019-01-25 06:22:48
【问题描述】:

我正在尝试从当前列表中删除一些值,但不知道哪里出错了。

我刚刚开始使用 Python 探索 Jupyter 进行数据科学。任何建议将不胜感激。

Q 编写一个函数,它接受一个 NumPy 数组(任何形状和大小)和两个裁剪值,调用 range_min 和 range_max。输入中任何大于 range_max 的值都应该被裁剪为等于 range_max,任何小于 range_min 的值都应该被裁剪为等于 range_min。

    def clip_array_range(array, range_min, range_max):
        if array[val] < range_min:
            return range_min
        if array[val] > range_max:
            return range_max
        return array[val] 

    a = np.array([-3, 2, 3, 5, 22, -12, -8, 2, 10, 38, 15])
    a_clipped = clip_array_range(a, -10, 10)
    print(a_clipped)
    # expected result: [ -3   2   3   5  10 -10  -8   2  10  10  10]     

    a = np.array([100, -100, 50, -50]).reshape(2,2)
    a_clipped = clip_array_range(a, -10, 10)
    print(a_clipped)
    # expected result: [[10 -10][10,-10] 2X2 array`

错误是

     a = np.array([-3, 2, 3, 5, 22, -12, -8, 2, 10, 38, 15])       
     a_clipped = clip_array_range(a, -10, 10)
     print(a_clipped)
     # TypeError -list object is not callable

【问题讨论】:

  • 有些东西正在尝试将列表视为一个函数。或者更有可能您错误地将函数更改为列表。您需要确定问题变量。我们无法从您提供给我们的代码中重现它。
  • 第二段代码是错误的部分不要包含在代码中。这一行出错 a = np.array([-3, 2, 3, 5, 22, -12, -8, 2, 10, 38, 15])
  • 命名变量array 可能会覆盖np.array
  • np.array 是 NumPy 模块的一个属性。我们可以将数组作为参数传递给函数,为了更正,我在 clip_array_range 函数中将“array”名称更改为“a”。它仍然显示相同的错误。
  • 问题变量的类型是什么?

标签: python python-3.x numpy jupyter-notebook


【解决方案1】:

写这个-

def clip_array(a, min, max):
    a[a > max] = max
    a[a < min] = min
    return a

a = np.array([-3, 2, 3, 5, 22, -12, -8, 2, 10, 38, 15])
a = clip_array(a, -10, 10)

【讨论】:

    猜你喜欢
    • 2015-09-14
    • 1970-01-01
    • 2012-04-21
    • 2014-06-13
    • 2021-03-31
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多