- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在实现以下目标时遇到了一些困难。假设我有两组从测试中获得的数据:
import numpy as np
a = np.array([[0.0, 1.0, 2.0, 3.0], [0.0, 2.0, 4.0, 6.0]]).T
b = np.array([[0.5, 1.5, 2.5, 3.5], [0.5, 1.5, 2.5, 3.5]]).T
第 0 列中的数据代表(在我的例子中)位移,第 1 列中的数据代表各自的测量力值。
(给定数据表示斜率为 2 和 1 的两条直线,它们的 y 轴截距均为 0。)
现在我正在尝试编写一个脚本,尽管 x 值不匹配,但它会平均这两个数组,这样它就会产生
c = [0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5], [0.0, 0.75, 1.5,
2.25, 3.0, 3.75, 4.5, 5.25]]).T
(斜率为 1.5 且 y 轴截距为 0 的线。)
我尽了最大努力使用切片和线性插值,但似乎我无法理解它(我是初学者)。
如果您有任何意见和提示,我将非常高兴,希望我提供给您的信息足够!
提前致谢
罗伯特
最佳答案
您可以获得每个数据集的系数(斜率和截距),获取平均值,并将该数据拟合到新的 x 值数组。
使用 polyfit
将 deg-1 多项式拟合到每个数组 a
和 b
获得每个系数(斜率和截距):
coef_a = np.polyfit(a[:,0], a[:,1], deg=1)
coef_b = np.polyfit(b[:,0], b[:,1], deg=1)
>>> coef_a
array([ 2.00000000e+00, 2.22044605e-16])
>>> coef_b
array([ 1.00000000e+00, 1.33226763e-15])
获取这些系数的平均值以用作 c
的系数:
coef_c = np.mean(np.stack([coef_a,coef_b]), axis=0)
>>> coef_c
array([ 1.50000000e+00, 7.77156117e-16])
使用 np.arange
为 c 创建新的 x 值
c_x = np.arange(0,4,0.5)
>>> c_x
array([ 0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5])
使用polyval
使新的 c
系数适合新的 x
值:
c_y = np.polyval(coef_c, c_x)
>>> c_y
array([ 7.77156117e-16, 7.50000000e-01, 1.50000000e+00,
2.25000000e+00, 3.00000000e+00, 3.75000000e+00,
4.50000000e+00, 5.25000000e+00])
使用 stack
将您的 c_x
和 c_y
值放在一起:
c = np.stack([c_x, c_y])
>>> c
array([[ 0.00000000e+00, 5.00000000e-01, 1.00000000e+00,
1.50000000e+00, 2.00000000e+00, 2.50000000e+00,
3.00000000e+00, 3.50000000e+00],
[ 7.77156117e-16, 7.50000000e-01, 1.50000000e+00,
2.25000000e+00, 3.00000000e+00, 3.75000000e+00,
4.50000000e+00, 5.25000000e+00]])
如果您将其四舍五入到小数点后两位,您会发现它与您想要的结果相同:
>>> np.round(c, 2)
array([[ 0. , 0.5 , 1. , 1.5 , 2. , 2.5 , 3. , 3.5 ],
[ 0. , 0.75, 1.5 , 2.25, 3. , 3.75, 4.5 , 5.25]])
c = np.stack([np.arange(0, 4, 0.5),
np.polyval(np.mean(np.stack([np.polyfit(a.T[0], a.T[1], 1),
np.polyfit(b.T[0], b.T[1], 1)]),
axis=0),
np.arange(0, 4, 0.5))])
>>> c
array([[ 0.00000000e+00, 5.00000000e-01, 1.00000000e+00,
1.50000000e+00, 2.00000000e+00, 2.50000000e+00,
3.00000000e+00, 3.50000000e+00],
[ 7.77156117e-16, 7.50000000e-01, 1.50000000e+00,
2.25000000e+00, 3.00000000e+00, 3.75000000e+00,
4.50000000e+00, 5.25000000e+00]])
关于 python 数组 : averaging slope and intercept of datasets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51710566/
我正在努力寻找平均列的正确语法。我所拥有的——来自 RavenDB Studio 编辑器: map : from area in docs.Level5_AdministrativeAreas sel
double average = LongStream .of(-4480186093928204294L, -1340542863544260591L, -600429628624003927
我在 MySQL 表中有梦幻足球联赛的数据。我想查询一个 php 页面的数据。 我如何创建一个查询来计算球队得分与该特定年份联盟平均得分的比较? 我的(简化的)数据表如下所示: 游戏 table :
干杯,伙计们。我被要求让这段代码在学习挑战中发挥作用,但我不确定如何处理“array.average()”部分,因为它不是一个函数。 我被问到的是: var array = [5,44,23,11,5
我刚刚开始学习 Java 中的数据结构和算法(从数组开始)。我有两个问题。 在我看来,算法执行中的“步骤”是实际上是算法访问的数组的位置。因为他们说数组中的插入一步发生,因为数据项被简单地插入到第一个
嗨,我正在使用谷歌分析 api gapi查找网站的“平均 session 持续时间”和“每次访问浏览的平均页面” 我为此创建了一个仪表板,其值为 00:02:30和 4.58分别 ... 我使用以下代
SELECT username, (SUM(rating)/count(*)) as TheAverage, count(*) as TheCount FROM ratings WHERE month
在 Office Excel AVERAGE 函数示例中,参数始终使用逗号作为分隔符。但是,AVERAGE(A2:C2 B1:B10) 在 Excel 中也有效。 我的问题:有什么区别以及为什么?谢谢
我的代码: name = ["AAAAA 4 2 1 2 4 2 4 4 5 2 2 1 5 2 4 3 1 1 3 3 5", "BBB 5 2 1 2 4 5 4 4 1 2 2 2 4 4
我一直在探索适用于 Android 的 Firebase Analytics,发现控制台的仪表板显示用户参与事件,该事件显示平均屏幕时间,如“hh:mm:ss”,还通过获取以下总和来显示“值”参数的平
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我使用维基百科文章中定义的折叠更改: http://en.wikipedia.org/wiki/Fold_change 我现在处理倍数变化已经有一段时间了,但从来没有真正需要计算我所有倍数变化的平均倍
这仅与编程相关 - 与颜色及其表示有更多关系。 我正在开发一个非常底层的应用程序。我在内存中有一个字节数组。那些是字符。它们是用抗锯齿渲染的:它们的值从 0 到 255,0 表示完全透明,255 完全
我正在尝试在用户界面中实现一个监视器,该监视器显示由海龟品种(海龟自己)共享的变量的平均值。有谁知道收集所有值的方法,将它们加在一起并除以海龟的数量以获得值或知道更简单的方法? 最佳答案 如果每只海龟
我试图在我的 OpenGL 程序中将骨架动画从矩阵切换到四元数,但我遇到了一个问题: 给定多个单位四元数,我需要得到一个四元数,当用于变换向量时,将给出一个向量,该向量是每个四元数单独变换的向量的平均
输入: Clickhouse 表A business_dttm(日期时间) 金额( float ) 我需要在每个 business_dttm 上计算 15 分钟(或最后 3 条记录)的移动总和 例如
我正在尝试找到一种方法来计算移动累积平均值,而不存储迄今为止收到的计数和总数据。 我想出了两种算法,但都需要存储计数: 新平均值 = ((旧计数 * 旧数据) + 下一个数据)/下一个计数 新平均值
在我的 SQL 脚本中,我想标准化来自这样的子查询的值 select y/avg(y) from ( select x*z as y from test_table )T 我知道这个解决方案会起
由于 Controller 损坏,文件在从 USB 闪存驱动器下载时会随机损坏。我下载了同一个文件的多个副本,每个副本的错误似乎通常是唯一且随机的。 因此,我需要一个脚本来比较同一文件的几个(3 到
我正在尝试解决一个非常简单的算法分析(显然对我来说不是那么简单)。 算法是这样的: int findIndexOfN(int A[], int n) { // this algorithm looks
我是一名优秀的程序员,十分优秀!