Python中如何生成-0.05到0.05步长0.002的数字序列并存入向量
原代码存在的问题
- 原生Python的
range()函数仅支持整数参数,无法直接传入浮点型的起始、终止值和步长 - NumPy数组的元素访问/赋值需要使用方括号
[],你代码中写的x(i)属于语法错误 - 初始化的长度为50的零向量不符合需求:步长为0.002时,-0.05到0.05的闭区间总共包含51个元素,向量长度设置错误
正确实现方式
直接使用NumPy内置的序列生成函数即可,不需要手动写循环,效率更高也更准确:
方法1:使用np.linspace()(优先选择,无浮点数精度误差)
直接指定起始值、终止值和总元素数,自动均匀生成序列:
import numpy as np # endpoint=True 表示生成的序列包含终止值0.05 x = np.linspace(start=-0.05, stop=0.05, num=51, endpoint=True)
方法2:使用np.arange()
如果要按步长生成,需要调整终止值保证0.05被包含在序列内:
import numpy as np # np.arange默认不包含终止值,因此将stop设置为略大于0.05的0.051保证结果符合预期 x = np.arange(start=-0.05, stop=0.051, step=0.002)
执行print(x)即可验证结果,生成的序列首尾值为-0.05和0.05,相邻元素差为0.002,总长度为51,符合需求。
内容的提问来源于stack exchange,提问作者mpaez89
相关产品推荐
相关产品推荐

