dbl*_*iss 9 python arrays numpy range
我们都很熟悉np.linspace,它创建给出的阵列start,stop和num元素:
In [1]: import numpy as np
In [2]: np.linspace(0, 10, 9)
Out[2]: array([ 0. , 1.25, 2.5 , 3.75, 5. , 6.25, 7.5 , 8.75, 10. ])
Run Code Online (Sandbox Code Playgroud)
同样,谁能够忘记np.arange,创造给予阵列start,stop和step:
In [4]: np.arange(0, 10, 1.25)
Out[4]: array([ 0. , 1.25, 2.5 , 3.75, 5. , 6.25, 7.5 , 8.75])
Run Code Online (Sandbox Code Playgroud)
但有一个功能,允许您指定一个start,step和num元素,但省略了stop?应该有.
谢谢你的提问.我遇到过同样的问题. (从我的角度来看)最短最优雅的方式是:
import numpy as np
start=0
step=1.25
num=9
result=np.arange(0,num)*step+start
print(result)
Run Code Online (Sandbox Code Playgroud)
回报
[ 0. 1.25 2.5 3.75 5. 6.25 7.5 8.75 10. ]
Run Code Online (Sandbox Code Playgroud)
一个删除的答案指出它linspace需要一个endpoint参数。
有了这个,其他答案中给出的 2 个例子可以写成:
In [955]: np.linspace(0, 0+(0.1*3),3,endpoint=False)
Out[955]: array([ 0. , 0.1, 0.2])
In [956]: np.linspace(0, 0+(5*3),3,endpoint=False)
Out[956]: array([ 0., 5., 10.])
In [957]: np.linspace(0, 0+(1.25*9),9,endpoint=False)
Out[957]: array([ 0. , 1.25, 2.5 , 3.75, 5. , 6.25, 7.5 , 8.75, 10. ])
Run Code Online (Sandbox Code Playgroud)
查看 中定义的函数,numpy.lib.index_tricks了解有关如何生成范围和/或网格的其他想法。例如,np.ogrid[0:10:9j]行为类似于linspace。
def altspace(start, step, count, endpoint=False, **kwargs):
stop = start+(step*count)
return np.linspace(start, stop, count, endpoint=endpoint, **kwargs)
Run Code Online (Sandbox Code Playgroud)
def by_num_ele(start,step,n_elements):
return numpy.arange(start,start+step*n_elements,step)
Run Code Online (Sandbox Code Playgroud)
也许?
其他一些解决方案对我来说不起作用,所以因为我已经习惯使用了,所以np.linspace我决定组合一个函数来用参数替换linspaces 。numstep
def linspace(start, stop, step=1.):
"""
Like np.linspace but uses step instead of num
This is inclusive to stop, so if start=1, stop=3, step=0.5
Output is: array([1., 1.5, 2., 2.5, 3.])
"""
return np.linspace(start, stop, int((stop - start) / step + 1))
Run Code Online (Sandbox Code Playgroud)
输出示例:
linspace(9.5, 11.5, step=.5)
array([ 9.5, 10. , 10.5, 11. , 11.5])
Run Code Online (Sandbox Code Playgroud)
编辑:我误读了这个问题,原来的问题想要一个省略参数的函数stop。我仍然会将其留在这里,因为我认为这对于一些偶然发现这个问题的人来说可能很有用,因为这是我发现的唯一一个与我最初的问题相似的问题,即用 、 和 查找函数start,stop而step不是num