使用numpy.linspace报TypeError: 'float' object cannot be interpreted as an integer如何修复
你遇到的报错是np.linspace参数使用错误导致的。np.linspace的第三个参数要求传入正整数,代表你要生成的等间隔数值序列的总个数,你当前传入了浮点数0.01,不符合参数类型要求,因此触发TypeError。
修复方案
- 如果你原本的需求是生成步长为0.01、范围在0.20到0.30之间的序列,有两种实现方式:
- 继续用
np.linspace,先计算总样本数:从0.20到0.30步长0.01的话,总共有11个样本点,修改对应行代码为:z = np.linspace(0.20, 0.30, 11) - 直接用更适合按步长生成序列的
np.arange,注意np.arange的结束值是开区间,要包含0.30的话需要把结束值设为0.31,代码为:z = np.arange(0.20, 0.31, 0.01)
- 继续用
- 如果你原本就是想指定生成的样本数,直接把第三个参数改成对应正整数即可。
修复后完整示例代码:
import matplotlib.pyplot as plt import numpy as np fig, ax1 = plt.subplots() z = np.linspace(0.20, 0.30, 11)
内容的提问来源于stack exchange,提问作者hamda
相关产品推荐
相关产品推荐

