我有一个 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 ...”,您通常会这样做:
arange( x_foo[0], x_foo[-1], 0.1 )
在多个间隔的情况下,这是不可能的。所以这是我的问题:是否有一种 numpy-thonic 方法可以以数组样式执行此操作?或者我是否需要编写一个循环整个数组并在差异 >1 时进行分割的函数?
谢谢!
最佳答案
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 的元素的索引。那么您想要的两个范围是:
np.arange(x[0],x[ind],0.1)
和
np.arange(x[ind+1],x[-1],0.1)
关于python - 具有多个间隔的numpy排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2737487/