Python如何不使用循环实现数组上下限裁切并修复绘图不显示问题
问题修复点
clip函数为空实现,直接返回None,导致后续绘图传入了无效的y轴数据,这是无法显示图像的核心原因。要求无循环实现裁剪,可以直接调用numpy内置的向量化裁剪方法np.clip(),用户侧无任何显式循环,符合要求。input()函数返回值为字符串类型,直接参与数值运算/比较会报错,需要先转换为浮点型/整型。- 原生Python列表不支持直接的向量化运算,需要先转换为numpy数组再进行裁剪操作。
修复后的完整代码
import numpy as np import matplotlib.pyplot as plt def clip(array, minimum, maximum): # 转numpy数组后调用内置方法实现无循环裁剪 np_arr = np.array(array) return np.clip(np_arr, minimum, maximum) array = [1,2,3,4,5,6,7,8] # 输入转浮点型适配数值操作 minimum = float(input("Enter your minimum value")) maximum = float(input("Enter your maximum value")) result_arr = clip(array, minimum, maximum) print(result_arr) plt.plot(array, result_arr) plt.show()
内容的提问来源于stack exchange,提问作者spookyboogie
相关产品推荐
相关产品推荐

