python - 具有多个间隔的numpy排列

标签 python numpy scipy interpolation

我有一个 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/

相关文章:

Python 选择有条件的元组

python - SciPy 可以使用 SLSQP 最小化来处理多个非线性约束吗?

python - 使用 scipy/voronoi_plot_2d 在同一窗口中重绘绘图

python - 处理 Python 库包的最佳实践是什么?

Python 线程 - 创建子类?

python - 如何定义导入python库的路径

python - 使用numpy数组实现softmax函数

python - 如何使用 python 在表格中显示多个 jpeg 图像?

python - 为什么 np.savetxt 不写任何东西?

python - 运行神经网络pybrain