• 【Python】数据科学之多维数组对象笔记(一)


    1 引言

    建议大家使用jupyter notebook进行操作!
    在日常生活中数据分析不是简单的一位数组或者列表,更多的情况下是以多维向量矩阵的形式出现。为了高效地处理这些数据,Python的Numpy中提供了多维数组对象ndarray以供使用。首先我们需要引入Numpy:

    import numpy as np
    
    • 1

    为了更好地理解多维数组处理的方式,这里给出一个案例。5位学生参加考试,一共7门课。具体数据如下:

    在这里插入图片描述

    2 一维数组对象

    2.1 创建一维数组对象

    names = np.array(['王微', '肖良英', '方绮雯', '刘旭阳','钱易铭'])
    print(names)
    subjects = np.array(['Math', 'English', 'Python', 'Chinese','Art', 'Database', 'Physics'])
    print(subjects)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2.2 查看数组属性

    (1)数组纬度

    print(names.ndim) 
    
    • 1

    (2)数组元素个数

    print(names.size)
    
    • 1

    (3)数组数据类型

    print(names.dtype)
    
    • 1

    在这里插入图片描述

    2.3 单个数组元素访问

    类似列表的位置索引,索引范围是 0 ~ n-1 :

    print(names[2])
    print(subjects[-3])
    
    • 1
    • 2

    在这里插入图片描述

    2.4 数组切片

    同样类似列表,采用 start🔚step 方式。元素从start开始,end-1结束,step为步长。

    print( subjects[ [0,2,4] ] )
    print(names[ 1:4 ])
    print(subjects[ : -1:2])
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    2.5 根据条件筛选数组元素

    可以使用条件表达式和关系运算符来选择所需要的数据元素。如筛选出names数组中值等于“王微”或“钱易铭”的元素。

    print( names[ (names == '王微') | (names== '钱易铭') ] )
    
    • 1

    在这里插入图片描述

    3 二维数组对象

    3.1 创建二维数组对象

    scores = np.array([[70,85,77,90,82,84,89],[60,64,80,75,80,92,90],[90,93,88,87,86,90,91],[80,82,91,88,83,86,80],[88,72,78,90,91,73,80]])
    print(scores)
    
    • 1
    • 2

    3.2 查看数组属性

    与一维类似:

    print(scores.ndim)  #数组维数
    print(scores.size)  #数组元素总数,行×列
    print(scores.shape)  #数组的行数和列数
    print(scores.dtype)  #数组元素的类型
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    3.3 二维数组切片

    (1)访问指定行、列元素,给出行和列两个索引值

    print(scores[1,0])
    print(scores[[1,3],[0,1]])
    
    • 1
    • 2

    在这里插入图片描述
    (2)访问部分行元素,给出行列表即可,列索引的“:”可以省略

    print(scores[[1,3]])
    
    • 1

    在这里插入图片描述
    (3)访问部分列元素

    print(scores[: , [0,1]])
    
    • 1

    在这里插入图片描述
    (4)访问部分行和列数据
    如:0和3行中,1~3列的数据

    print(scores[ [0,3], 1:4 ])
    
    • 1

    在这里插入图片描述

    3.4 条件筛选

    实质bool型数组筛选!

    print( scores[(names == '肖良英') | (names == '方绮雯'), :] )
    
    print( scores[(names == '肖良英') | (names == '方绮雯')][:,(subjects == 'Math') | (subjects == 'Python')] )
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    4 创建多维数组的常用方法

    4.1 arange()

    np.arange(0,11)
    
    • 1

    在这里插入图片描述

    np.arange(3,11,2)
    
    • 1

    在这里插入图片描述

    np.arange(0.3,1.5,0.3)
    
    • 1

    在这里插入图片描述

    4.2 reshape()

    如将有15个连续整数的一维数组转换为3x5的二维数组

    np.arange(0,15).reshape(3,5)
    
    • 1

    在这里插入图片描述

    4.3 zeros()、ones()

    创建元素全0或全1的矩阵

    np.zeros((3,4))
    
    • 1

    在这里插入图片描述

    np.ones((3,4))
    
    • 1

    在这里插入图片描述
    over,一张美图送给大家~
    在这里插入图片描述

  • 相关阅读:
    硝酸根离子深度去除树脂
    区块链的认识
    笙默考试管理系统-MyExamTest----codemirror(22)
    工控网络协议模糊测试:用peach对modbus协议进行模糊测试
    新手如何第一次编写 “Hello World“ Windows 驱动程序 (KMDF)
    鲜花线上销售管理系统的设计与实现
    【无标题】
    C语言日记——调试篇
    奥特曼autMan机器人安装,开启插件市场+对接QQ、微信、公众号教程
    Flink学习6:编程模型
  • 原文地址:https://blog.csdn.net/weixin_46043195/article/details/126229369