Python数据科学:使用numpy求行均值

13,176次阅读
没有评论

共计 1058 个字符,预计需要花费 3 分钟才能阅读完成。

级高速公路 ETC 识别机携带者
2021-10-12 18:56:09
浏览数 (5229)

随着大数据时代的来临,Python 应运而生,在这数据浪潮中逐渐发光发亮。越来越多的人开始学习 Python,学习其中的数据科学、人工智能等等。今天,和大家分享关于 Python 数据科学中一个特别重要库 numpy 库中一道题目,分享一下关于对于这道题的解题思路。

题目:

随机给定一个二维数组,结果返回行均值。

输入要求:

第一行:两个用空格隔开的整数,第一个表示矩阵 X(n) 的行,第二个表示 X(p) 的列。

接下来的 n 行:X 中行的值。

输出要求:

一个 numpy 一维值数组,四舍五入到第二个小数。

输入样本:

2 2 
1.5 1 
2 2.9

输出样本:

[1.25 2.45]

解题思路:

最简单也是最关键,最重要的一步,导入 numpy 库。

import numpy as np

需要定义 numpy 数组的行列,因为要满足题目要求的随机性,所以这里就不写死,使用 input 输入。而且行列一定是整数类型的,数据类型必须是 int 类型。但是输入的值是字符串,这时候就需要对输入的值进行转换。

n, p = [int(x) for x in input().split()]

接下来,每行都会输入 p 个值。我用了一个范围为 n 的循环,每行都能输入 p 个值。此前还需要定义一个空数组,便于后面的数组进行累加。

arr = []
for i in range(n):
    arr += [float(x) for x in input().split()]

接下来就是将数组转换为 numpy 数组,并且给它重塑为二维数组。

arr = np.array(arr).reshape(n, p)

最后就可以直接使用 numpy 的 mean 方法求均值即可,但题目要求是求行均值,这时候就需要设置 axis=1,按列计算,获得行均值。同时结果还需要保留小数点后两位,就需要用上 round 方法。

arr.mean(axis=1).round(2)

完整代码:

import numpy as np

n, p = [int(x) for x in input().split()]

arr = []
for i in range(n):
    arr += [float(x) for x in input().split()]

arr = np.array(arr).reshape(n, p)
print(arr.mean(axis=1).round(2))

结果输出:

总结:

以上就是我关于这道 numpy 库练习题目的理解和解题过程。有兴趣的读者们也可以尝试做一下,或许你们可以会有更好的解题思路和方法呢!

原文地址: Python 数据科学:使用 numpy 求行均值

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-23发表,共计1058字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)