多个间隔的numpy arange

2024-09-26 18:04:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个numpy数组,它代表一个函数的多个x间隔:

In [137]: x_foo
Out[137]: 
array([211, 212, 213, 214, 215, 216, 217, 218, 940, 941, 942, 943, 944,
       945, 946, 947, 948, 949, 950])

如您所见,在x逖foo中有两个间隔:一个从211到218,一个从940到950。这些是间隔,我想用scipy插值。为此,我需要调整间距,例如“211.0 211.1 211.2…”,通常情况下您会使用:

^{pr2}$

在多个间隔的情况下,这是不可能的。所以我的问题是:有没有一种numpy thonic的方法来实现数组风格?或者我是否需要编写一个函数来遍历整个数组并在差值大于等于1时进行拆分?在

谢谢!在


Tags: 函数innumpy间隔foo情况代表scipy
2条回答
import numpy as np
x = np.array([211, 212, 213, 214, 215, 216, 217, 218, 940, 941, 942, 943, 944,
   945, 946, 947, 948, 949, 950])
ind = np.where((x[1:] - x[:-1]) > 1)[0]

将给出x中元素的索引,它等于218。那么您需要的两个范围是:

^{pr2}$

以及

np.arange(x[ind+1],x[-1],0.1)
np.r_[ 211:218+1, 940:950+1 ]
array([211, 212, 213, 214, 215, 216, 217, 218, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950])

r_[]用标量、范围、数组、列表、元组组成一行。。。; 我猜r_row的缩写。 有关doc,请参见Ipython中的np.r_?
(Python在方括号内处理211:218而不是圆括号,因此r_[]不是{})。在

相关问题 更多 >

    热门问题