【发布时间】: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