Numpy数组间运算

数组间运算

【数组与数】的4则运算:

  • [[1, 2, 3, 2, 1, 4], [5, 6, 1, 2, 3, 1]]
    Numpy数组间运算_第1张图片
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
注意:python里面的列表是这样的运算规则吗?不是的。

Numpy数组间运算_第2张图片
Numpy数组间运算_第3张图片
Numpy数组间运算_第4张图片
在这里插入图片描述

  • 我们发现a这个数组被复制了,可以参考python列表的运算,这样就对比出来一维数组和二维数组的区别了。

【数组与数组】的4则运算:

Numpy数组间运算_第5张图片

arr1 = np.array([[1, 2, 3, 2, 1, 4], [5, 6, 1, 2, 3, 1]])
arr2 = np.array([[1, 2, 3, 4], [3, 4, 5, 6]])

在这里插入图片描述
Numpy数组间运算_第6张图片
Numpy数组间运算_第7张图片
Numpy数组间运算_第8张图片

错误提示信息为:不能广播。

广播机制:

Numpy数组间运算_第9张图片

  • 需要满足的两个条件是:要运算的这两个数组要么维度上的数是相等的要么有一个维度上有1。
    Numpy数组间运算_第10张图片
  • 拿上图中【最后一个】解释如下:第一个维度上都是15,所以满足维度相等这个条件,第二个维度一个是3一个是1,虽然维度不相等,但是对应的位置上有1,第三个维度一个是5一个是1,虽然维度不相等,但是对应的位置上有1。最后的运算结果就是取该维度上最大的值作为最后的运算结果的维度。
    Numpy数组间运算_第11张图片
    在这里插入图片描述
具体演示如下:

Numpy数组间运算_第12张图片
在这里插入图片描述
在这里插入图片描述
Numpy数组间运算_第13张图片
在这里插入图片描述

  • 总结:最终运算后的维度也是取维度中对应位置上最大的维度值。
矩阵运算:
  • 场景:
    Numpy数组间运算_第14张图片
    Numpy数组间运算_第15张图片
思考:如何能够直接得出每个学生的成绩?
  • 什么是矩阵:
    • 矩阵,英文matrix,和array的区别矩阵必须是二维的,但是array可以实多维的。
    • np.mat()
      • 将数组转换成矩阵类型
        Numpy数组间运算_第16张图片
将数组转换为矩阵:

Numpy数组间运算_第17张图片

矩阵乘法运算:

  • 矩阵乘法的两个关键:
    • 形状改变
    • 运算规则
      Numpy数组间运算_第18张图片
      Numpy数组间运算_第19张图片
  • 矩阵乘法api:
    • np.matmul
    • np.dot
      Numpy数组间运算_第20张图片
      Numpy数组间运算_第21张图片
  • 矩阵应用场景
    • 大部分机器学习算法需要用到
具体演示如下:

在这里插入图片描述
Numpy数组间运算_第22张图片
Numpy数组间运算_第23张图片

将数组转换为矩阵:
  • data_mat = np.mat([[80, 86], [82, 80], [85, 78], [90, 90], [86, 82], [82, 90], [78, 80], [92, 94]])
    Numpy数组间运算_第24张图片
    Numpy数组间运算_第25张图片

使用np.matmul()进行数组相乘:

Numpy数组间运算_第26张图片

使用np.matmul()进行矩阵相乘:

Numpy数组间运算_第27张图片

使用np.matmul()进行数组与矩阵相乘:

Numpy数组间运算_第28张图片

使用np.dot()进行数组相乘:

Numpy数组间运算_第29张图片

使用np.dot()进行矩阵相乘:

Numpy数组间运算_第30张图片

使用np.dot()进行数组与矩阵相乘:

Numpy数组间运算_第31张图片

相乘的特殊形式:

Numpy数组间运算_第32张图片

  • 错误提示信息为:不满足广播机制,不能进行运算。
    Numpy数组间运算_第33张图片
    Numpy数组间运算_第34张图片
    Numpy数组间运算_第35张图片
相乘的另一种形式:

Numpy数组间运算_第36张图片
Numpy数组间运算_第37张图片
Numpy数组间运算_第38张图片

矩阵乘法运算总结:

Numpy数组间运算_第39张图片

  • 注意:数组是ndarray,矩阵一定是数组,而数组不一定是矩阵,因为矩阵必须是二维的,也就是矩阵是一个二维数组。

合并与分割:

  • 合并api:
    Numpy数组间运算_第40张图片
np.hstack():也叫做水平合并,也就是按照列进行拼接。

一维数据的水平合并:

  • a = np.array((1, 2, 3))
  • b = np.array((4, 5, 6))
    Numpy数组间运算_第41张图片
    在这里插入图片描述
  • 也可以:
    在这里插入图片描述
二维数据的水平合并:
  • a = np.array([[1],[2],[3]])
  • b = np.array([[4],[5],[6]])
    Numpy数组间运算_第42张图片
    Numpy数组间运算_第43张图片
  • 也可以:
    Numpy数组间运算_第44张图片

np.vstack():也叫做垂直合并,也就是按照行进行拼接。

一维数据的垂直合并:
  • a = np.array((1, 2, 3))
  • b = np.array((4, 5, 6))
    Numpy数组间运算_第45张图片
    在这里插入图片描述
  • 也可以:
    Numpy数组间运算_第46张图片
二维数据的垂直合并:
  • a = np.array([[1],[2],[3]])
  • b = np.array([[4],[5],[6]])
    Numpy数组间运算_第47张图片
    Numpy数组间运算_第48张图片
  • 也可以:
    Numpy数组间运算_第49张图片

np.concatenate():即可以水平合并又可以垂直合并。

  • a = np.array([[1, 2], [3, 4]])
  • b = np.array([[5, 6]])
    在这里插入图片描述
axis=0的时候,按照数组的行方向拼接在一起.

在这里插入图片描述

  • 也可以:
    Numpy数组间运算_第50张图片
  • 默认是axis=0。
    Numpy数组间运算_第51张图片
axis=1的时候,按照数组的列方向拼接在一起.

Numpy数组间运算_第52张图片

  • 也可以:
    Numpy数组间运算_第53张图片
  • 如果b不进行转置的时候就会报错。
    Numpy数组间运算_第54张图片

案例:将前2只股票的前4天数据和后3只股票的前4天数据进行合并。

Numpy数组间运算_第55张图片
Numpy数组间运算_第56张图片
Numpy数组间运算_第57张图片
Numpy数组间运算_第58张图片
Numpy数组间运算_第59张图片

  • 此种情况就不能按照列进行拼接在一起了:
    Numpy数组间运算_第60张图片
    Numpy数组间运算_第61张图片
  • 稍微将数据进行一下变换:
    Numpy数组间运算_第62张图片
  • 按行方向进行拼接:
    Numpy数组间运算_第63张图片
  • 按列方向进行拼接:
    Numpy数组间运算_第64张图片

分割api

在这里插入图片描述
Numpy数组间运算_第65张图片

IO操作:

问题:

  • 大多数数据并不是我们自己构造的,而是存在文件当中,需要我们用工具获取。但是Numpy其实并不适合用来读取和处理数据,因此我们这里了解相关api,以及numpy不方便的地方即可。
numpy读取数据:

Numpy数组间运算_第66张图片
Numpy数组间运算_第67张图片

  • 因为csv文件是以逗号进行分隔的,所以,第二个参数的值为逗号。
    Numpy数组间运算_第68张图片

(了解)数据处理入门:

什么是缺失值?

在这里插入图片描述

如何处理缺失值?

在这里插入图片描述
Numpy数组间运算_第69张图片
Numpy数组间运算_第70张图片
Numpy数组间运算_第71张图片

你可能感兴趣的:(numpy)