python – 使用Numpy查找跨数据集的平均值,以及一些丢失的数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 使用Numpy查找跨数据集的平均值,以及一些丢失的数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2120字,纯文字阅读大概需要4分钟。
内容图文
![python – 使用Numpy查找跨数据集的平均值,以及一些丢失的数据](/upload/InfoBanner/zyjiaocheng/823/a4311e36d78e4711a0660c3cb35f120b.jpg)
我有几个(10个左右)CSV格式的数据集.数据集的每一列代表正在运行的系统的一个方面(可用RAM,CPU使用率,开放TCP连接等).每行包含某个时刻这些列的值.
在相同测试的单独运行期间捕获数据集.每个数据集中的行数不保证相同(即:某些测试的运行时间比其他测试长).
我想生成一个新的CSV文件,它表示所有数据集中给定时间偏移量和给定列的“平均”值.理想情况下,将忽略一个数据集中缺失的值.但是,如有必要,可以假定缺失值与上一个已知值相同,或者该行的已知值的平均值.
一个简化的例子:
+---------------+ +---------------+ +---------------+
| Set 1 | | Set 2 | | Average |
+---+-----+-----+ +---+-----+-----+ +---+-----+-----+
| t | A | B | | t | A | B | | t | A | B |
+---+-----+-----+ +---+-----+-----+ +---+-----+-----+
| 1 | 10 | 50 | | 1 | 12 | 48 | | 1 | 11 | 49 |
| 2 | 13 | 58 | | 2 | 7 | 60 | | 2 | 10 | 59 |
| 3 | 9 | 43 | | 3 | 17 | 51 | => | 3 | 13 | 47 |
| 4 | 14 | 61 | | 4 | 12 | 57 | | 4 | 13 | 59 |
| : | : | : | | : | : | : | | : | : | : |
| 7 | 4 | 82 | | 7 | 10 | 88 | | 7 | 7 | 86 |
+---+-----+-----+ | 8 | 15 | 92 | | 8 | 15 | 92 |
| 9 | 6 | 63 | | 9 | 6 | 63 |
+---+-----+-----+ +---+-----+-----+
我是numpy的新手,专门为这个项目挑选了它.最好的方法是什么?对于具有相同行数的数据集(我通过将较长的数据集缩短来强制执行),我只是这样做:
d_avg = sum(dsets) / float(len(dsets))
其中“dsets”是包含每个CSV文件中数据的ndarrays列表.这很好用,但我不想丢弃长时间运行的数据.
我也可以将较短的行程调整为最长的长度,但所有新字段都填充“NoneType”.添加(例如)float和NoneType时,稍后的操作会出错.
有什么建议?
解决方法:
为什么不只是我们numpy的ma(蒙面阵列)模块?
maxLen = reduce(lambda a,b : max(a, b.shape[0]),
dSets, 0)
all = N.ma.zeros((maxLen,)+ dSets[0].shape[1:] + (len(dSets),),
dtype=float) # set the dtype to whatever
all.mask = True
for i, set in enumerate(dSets):
all.mask[:len(set),...,i] = False
all[:len(set),...,i] = set
mean = all.mean(axis=-1)
当然,这只有在你可以保证所有数组中每行的时间相同时才有效,即为所有i设置[i,0] == set [j,0] j
内容总结
以上是互联网集市为您收集整理的python – 使用Numpy查找跨数据集的平均值,以及一些丢失的数据全部内容,希望文章能够帮你解决python – 使用Numpy查找跨数据集的平均值,以及一些丢失的数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。