初识numpy及简单应用简单理解

①numpy模块:numpy是Python支持对大量数组进行科学计算的第三方库。其核心是ndarray对象,个对象封装同种类型的n维数组且将许多操作留在编译代码中执行,运行效率高。故numpy善于对大量数据进行科学计算。是基于python数据分析的三大模块之一。

②使用场景:numpy模块通常与matplotlib(绘图库)一起使用,在matplotlib绘制图表前进行对数据进行计算处理。也被称为matplotlib模块绘制图表伴侣。

③为什么要用numpy:Python中除了列表其他容器都在数据分析中都不太合适,但列表传递的是引用,虽然长度及元素类型灵活但速度就不怎么快。显然numpy更适合大量数据和高频计算,但ndarray创建固定,元素同种类,改变相当于重建。

ndarray(N-dimensional array)意思是n维数组,保存同种类数据,一旦写入,不能改变。

④实例应用:没有人出题我想到的也比较雷同,无非对一组数的,期望,方差,标准差的计算,这些方法倒不必急于一时。我们以简单学生成绩单为例进行的操作,难度主要是了解CSV文件并导入数据,以及格式化结构数组,矩阵运算倒不多!

tip:导入数据的一个关键点:结构数组 dtype,结构中的字段占据连续的内存空间,每个结构体占用的内存大小相同,在python中只能是元组。np.dtype({})中,必须是'names'和'formats',不允许自己给名,否则会报出如下错误:ValueError: entry not a 2- or 3- tuple。

⑤总结:现在对numpy的理解就是数组的计算,日常如果就是简单的加减乘除或者统计分析,Excle足矣,实在不行录一个宏优化下,甚至不用VBA。

import numpy as np
def load_csv():
    datas = []
    header = []
    with open('F:/python学习文件/实验文件夹/numpy/统计样本.csv', 'r', encoding='utf-8-sig') as f:
        # 把Excel文件直接保存成CSV文本,导入
        # 文本保存时包含了BOM(Byte Order Mark,字节顺序标记,出现在文本文件头部)用utf-8会出现\ufeff字符(没啥影响)
        # 按行读取最后一个元组元素有换行符\n
        for index, line in enumerate(f.readlines()):
            if index == 0:
                header = (line.split(','))  # 输出一个列表,存放表头,每个表头是字符串
            else:
                datas.append(tuple(line.split(',')))  # 输出一个列表,每个元素是每行数据的元组,元组元素是字符串数据
    print(header)
    # print(datas)
    # 把datas变成矩阵,datas本质是一个列表中间存放了38个元组数据,定义列名和每列的数据类型
    result = np.array(datas, dtype={'names': header, 'formats': ['S4', 'i', 'i', 'i', 'i', 'i', 'f']})
    # print(result)
    return result  # 生成的是一个(38,)38行1维数组,每个元素是元组并被header对应命名
stu_s = load_csv()
chinese = stu_s['语文']
math = stu_s['数学']
print(f'语文平均分是{np.mean(chinese):.2f},数学最高分是{np.max(math)}')
print(stu_s.dtype)
print(stu_s.shape)
print(math)
j = 0
for i in stu_s['地理\n']:
    if i < 60:
        j += 1
print(f'地理不及格的人数为{j}')
print(np.extract(stu_s['地理\n'] < 60, stu_s['地理\n']))

以下为输出信息:

猜你喜欢

转载自blog.csdn.net/lizhyangmm/article/details/127107485