一个函数,它接受一个 NumPy 数组(任何形状和大小)和两个裁剪值,调用 range_min 和 range_max。输入中任何大于 range_max 的值都应该被裁剪为等于 range_max,任何小于 range_min 的值都应该被裁剪为等于 range_min。下一个单元格包含函数签名和 Python 文档代码,可帮助您入门。我已经为这个问题实现了不同的代码,但不知道如何在没有循环的情况下做到这一点。import numpy as npdef clip_array_range(list_values): for (i, item) in enumerate(list_values): if item < -10: list_values[i]= -10 elif item > 10: list_values[i]= 10 return list_values print(clip_array_range([-3, 2, 3, 5, 22, -12, -8, 2, 10, 38, 15]))# expected result: [ -3 2 3 5 10 -10 -8 2 10 10 10]print(clip_array_range([100, -100,50, -50]))new = np.reshape(clip_array_range, (-1))# I have tried change 1D array into 2D as a output but it's not workingprint(new)# expected result:#[[ 10 -10]# [ 10 -10]]此代码没有错误,但试图理解不同类型的逻辑以在没有循环的情况下执行此操作
2 回答
森林海
TA贡献2011条经验 获得超2个赞
def clip_array_range(list_values, min_value=-10, max_value=10): return np.maximum(min_value, np.minimum(list_values, max_value))
添加回答
举报
0/150
提交
取消