如何像在MATLAB中一样在Python中创建数字范围

odopli94  于 2023-01-16  发布在  Python
关注(0)|答案(4)|浏览(145)

有没有办法在Python中像MATLAB一样使用简单的语法,即不使用循环来创建一个数字范围。例如:
MATLAB:a = 1:0.5:10给予a = [1 1.5 2 2.5 3 3.5 .... 9.5 10]

sczxawaw

sczxawaw1#

正如其他人所指出的,np.arange让你最接近你从matlab中习惯的东西,然而,np.arange排除了端点,你在自己的答案中提出的解决方案可能会导致错误的结果(见我的评论)。
但是,这将始终有效:

start = 0
stop = 3
step = 0.5
a = np.arange(start, stop+step, step)

进一步阅读:特别是如果你是一个有经验的matlab用户,这个指南/备忘单可能会很有趣:Link

dced5bon

dced5bon2#

Numpy有aranger_,看起来像这样:

import numpy as np
print(np.arange(1, 3, .5))
# [ 1.   1.5  2.   2.5]
print(np.r_[1:3:.5])
# [ 1.   1.5  2.   2.5]

注意它和matlab有一点不同,首先numpy中stop和step的顺序和matlab相反,其次stop不包含在结果中。你也可以考虑使用linspace,当你使用浮点数时,linspacearange更好,因为numstep定义得更精确:

print(np.linspace(1, 3, num=5))
# [ 1.   1.5  2.   2.5  3. ]

print(np.linspace(1, 3, num=4, endpoint=False))
# [ 1.   1.5  2.   2.5]
1zmg4dgp

1zmg4dgp3#

import numpy as np
a = np.arange(1, 10, 0.5)
print (a)
roejwanj

roejwanj4#

Python内置的xrange函数可以像这样生成整数:

xrange(start, stop, step)

但是xrange不能执行浮点运算。

相关问题