python - NumPy 中的模型测量和误差

标签 python numpy scipy octave

我想尝试使用 SciPy 套件而不是 Octave 在我的实验室实验中进行统计。我的大部分问题都得到了解答 here , 还剩下一件事:

我的测量结果通常会出错,在 Octave 中我只是做了以下操作:

R.val = 10;
R.err = 0.1;

U.val = 4;
U.err = 0.1;

然后我会像这样计算 I:

I.val = U.val / R.val;
I.err = sqrt(
    (1 / R.val * U.err)^2
    + (U.val / R.val^2 * R.err)^2
);

当我有一堆测量时,我通常使用结构数组,像这样:

R(0).val = 1;
R(0).err = 0.1;
…
R(15).val = 100;
R(15).err = 9;

然后我可以执行 R(0).val 或使用 R.val 直接访问它们,并且我有一个包含所有值的列向量,对于 mean(R.val) 例如。

我如何使用 SciPy/NumPy/Python 表示它?

最佳答案

这种错误传播正是uncertainties Python包确实如此。它透明地并通过正确处理相关性来做到这一点:

from uncertainties import ufloat

R = ufloat(10, 0.1)
U = ufloat(4, 0.1)
I = U/R

print I

打印 0.4+/-0.0107703296143,在自动确定和计算您在示例中手动键入的错误公式后。另外,I.nI.s 分别是标称值(your val)和标准差(your err) .

也可以使用包含不确定数字的数组 ( http://pythonhosted.org/uncertainties/numpy_guide.html )。

(免责声明:我是这个包的作者。)

关于python - NumPy 中的模型测量和误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12351837/

相关文章:

python代码理解

python - 从 3D numpy 数组中删除索引

python - 如何从(任意)连续概率分布进行模拟?

python - 使用生成器从给定的单词造句

Python 'requests' 库 - 定义特定的 DNS?

Python:添加一个新的 mimetype

python - 用 Pandas 首次出现的索引计算过渡的最小值和最大值

python - 什么决定了 numpy 中 int 的大小?

python - 如何使用 scipy stats 打印线方程

python - 使用 scipy.sparse.linalg 线性系统求解器的问题