Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python numpy-使用数组作为范围的起点和终点_Python_Arrays_Numpy - Fatal编程技术网

Python numpy-使用数组作为范围的起点和终点

Python numpy-使用数组作为范围的起点和终点,python,arrays,numpy,Python,Arrays,Numpy,这是我拥有的一个简化数组: a = np.array([ 1, 12, 60, 80, 90, 210]) b = np.array([11, 30, 79, 89, 99, 232]) 如何获得一个结果,将a用作起始范围,将b用作范围的结束,从而可以(快速)计算数字列表 所以,c看起来像: c = np.array([1,2,3,...,11, 12,13,14,...,29,30, 60,61,62,...79, ..., 210,211,...,231,23

这是我拥有的一个简化数组:

a = np.array([ 1, 12, 60, 80, 90, 210])
b = np.array([11, 30, 79, 89, 99, 232])
如何获得一个结果,将
a
用作起始范围,将
b
用作范围的结束,从而可以(快速)计算数字列表

所以,
c
看起来像:

c = np.array([1,2,3,...,11, 12,13,14,...,29,30, 
              60,61,62,...79, ..., 210,211,...,231,232])

理想情况下,这将以矢量化的方式(使用numpy/pandas)而不是python完成。

总结上述评论:一种方法是使用
zip()
np.concatenate()

c=np.concatenate([np.arange(x,y+1)表示zip(a,b)中的x,y)])


HT发送至@VasilisG。和@ThomasKühn

如果您从
操作符导入
add
,您可以执行以下操作:
c=np.array(reduce(add)[range(x,y)for x,y in zip(a,b)])
您可以尝试这样做:
c=np.array(np.arange([np.arange(a[i],b[i]+1)for i in range(len(a)))
。您也可以将Vasilis'和pault的答案结合使用,
c=np.concatenate([np.arange(x,y+1)代表zip(a,b)中的x,y)]
@AH很想听听您的数据集上的计时。使用您的答案Divakar的~50000项数组(每个a和b):1.92 ms±48.9µs每个循环(平均±标准偏差为7次,每个循环100次)使用另一个答案:每个循环97.6 ms±3.07 ms(7次运行的平均值±标准偏差,每个循环10次),因此2个数量级,这是实现矢量化的预期结果。谢谢大家的回答:)。