机器学习数据科学包(一)——numpy数据包

目录

1.numpy概述

2.矩阵构造方法:

3.矩阵形状维度相关方法:

4.矩阵基本操作

5.矩阵查找

6.矩阵遍历

7.矩阵合并

8.矩阵分割

9.矩阵浅拷贝与深拷贝


 

1.numpy概述

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组矩阵运算,此外也针对数组运算提供大量的数学函数库。

安装:python3 -m pip install numpy

导入:import numpy as np

2.矩阵构造方法:

  • np.array(列表[,类型])                                               创建矩阵
  • np.zeros((行,列)[,dype = np.int16])                       创建0矩阵
  • np.ones((行,列)[,dype = np.int16])                        创建1矩阵
  • np.empty((行,列)[,dype = np.int16])                      创建空矩阵(其实不能生成完全的空矩阵)
  • np.eye(数字)                                                              创建单位阵
  • np.diag([对角1,对角2...])                                         创建对角矩阵
  • np.arange(起始,终止,步长)                                   创建数组
  • np.lines(起始,终止,段数)                                       创建线段
  • np.random.randint(最小值, 最大值, (行,列))               创建整数随机矩阵
  • np.random.random((行,列))                                     创建值为0-1随机矩阵

创建0矩阵

机器学习数据科学包(一)——numpy数据包                                               机器学习数据科学包(一)——numpy数据包

创建1矩阵

机器学习数据科学包(一)——numpy数据包             机器学习数据科学包(一)——numpy数据包

创建空矩阵(注意:不能生成完全空矩阵)

机器学习数据科学包(一)——numpy数据包                                       机器学习数据科学包(一)——numpy数据包

创建数组

机器学习数据科学包(一)——numpy数据包                              机器学习数据科学包(一)——numpy数据包

创建线段

机器学习数据科学包(一)——numpy数据包                       机器学习数据科学包(一)——numpy数据包

创建值为0-1随机矩阵

机器学习数据科学包(一)——numpy数据包                    机器学习数据科学包(一)——numpy数据包

3.矩阵形状维度相关方法:

  • a[:,np.newaxis])           行增加维度
  • a[np.newaxis,:])           列增加维度
  • a.reshape(行,列)            重定义形状
  • a.ndim()                            查看维度
  • a.shape()                          查看形状
  • a.size()                             查看容量
  • a.dtype()                           查看类型
  • a.flatten()                          将矩阵变为数组

创建矩阵并查看维度,形状,大小

机器学习数据科学包(一)——numpy数据包           机器学习数据科学包(一)——numpy数据包

查看类型

机器学习数据科学包(一)——numpy数据包         机器学习数据科学包(一)——numpy数据包

机器学习数据科学包(一)——numpy数据包         机器学习数据科学包(一)——numpy数据包

重定义形状

 

机器学习数据科学包(一)——numpy数据包            机器学习数据科学包(一)——numpy数据包

4.矩阵基本操作

  • a+b、a-b                                                  按位相加减
  • a*b/a**2                                                    按位乘
  • np.sin(矩阵)                                              按位求sin
  • a<3                                                           按位比较
  • np.dot(a,b)和a.dot(b)                             矩阵乘法
  • np.max(a)和np.max(a,axis=0/1)               最大值
  • np.min(a)和np.min(a,axis=0/1)                 最大值
  • np.sum(a)和np.sum(a,axis=0/1)               求和
  • np.median(a)和np.median(a,axis=0/1)     求中位数
  • np.mean(a)和np.mean(a,axis=0/1)           求平均值
  • np.argmin(a)和np.argmax(a)                    找最大值最小值索引
  • np.cumsum(a)和np.diff(a)                         按位累加/按位累减
  • np.nonzeros(a)                                          查找非0项
  • np.sort(a)                                                   行内排序
  • a.T 和 np.transpose(a)                              矩阵的逆
  • np.clip(A,min,max)                                    修剪矩阵

以上方法axis=0表示按列,axis=1表示按行

按位减

机器学习数据科学包(一)——numpy数据包                       机器学习数据科学包(一)——numpy数据包

矩阵按位乘

 

机器学习数据科学包(一)——numpy数据包                                               机器学习数据科学包(一)——numpy数据包

矩阵求sin

 

机器学习数据科学包(一)——numpy数据包                                    机器学习数据科学包(一)——numpy数据包

按位比较

机器学习数据科学包(一)——numpy数据包                                                     机器学习数据科学包(一)——numpy数据包

矩阵乘法

机器学习数据科学包(一)——numpy数据包                      机器学习数据科学包(一)——numpy数据包

最大值,最小值,求和

机器学习数据科学包(一)——numpy数据包                     机器学习数据科学包(一)——numpy数据包

机器学习数据科学包(一)——numpy数据包                     机器学习数据科学包(一)——numpy数据包

最大值/最小值索引

机器学习数据科学包(一)——numpy数据包                     机器学习数据科学包(一)——numpy数据包 

平均值

机器学习数据科学包(一)——numpy数据包                       机器学习数据科学包(一)——numpy数据包

中位数

机器学习数据科学包(一)——numpy数据包                                                  机器学习数据科学包(一)——numpy数据包

累加

机器学习数据科学包(一)——numpy数据包                                         

        机器学习数据科学包(一)——numpy数据包

累减

机器学习数据科学包(一)——numpy数据包                                                  机器学习数据科学包(一)——numpy数据包

查找非0项

机器学习数据科学包(一)——numpy数据包                                            机器学习数据科学包(一)——numpy数据包

行内排序

机器学习数据科学包(一)——numpy数据包                      机器学习数据科学包(一)——numpy数据包

矩阵求逆

机器学习数据科学包(一)——numpy数据包                                   机器学习数据科学包(一)——numpy数据包

矩阵修剪

 

机器学习数据科学包(一)——numpy数据包                                    机器学习数据科学包(一)——numpy数据包

5.矩阵查找

与Python序列一致 查找某元素A[i][j]

  • A[1,2]        查找索引1,2的元素
  • A[:,i ]      查找第i列元素元素

机器学习数据科学包(一)——numpy数据包                                                机器学习数据科学包(一)——numpy数据包

机器学习数据科学包(一)——numpy数据包                        机器学习数据科学包(一)——numpy数据包

 

机器学习数据科学包(一)——numpy数据包                                                         机器学习数据科学包(一)——numpy数据包

 

机器学习数据科学包(一)——numpy数据包                                                         机器学习数据科学包(一)——numpy数据包

 

机器学习数据科学包(一)——numpy数据包                                                       机器学习数据科学包(一)——numpy数据包

6.矩阵遍历

与Python序列一样 用for遍历

  • for row in A: print(row)            按行打印
  • for col in A.T: print(col)            按列打印
  • for item in A.flat: print(item)    打印全部元素

按行打印

机器学习数据科学包(一)——numpy数据包                                                       机器学习数据科学包(一)——numpy数据包

按列打印

机器学习数据科学包(一)——numpy数据包                                            机器学习数据科学包(一)——numpy数据包

打印全部元素

机器学习数据科学包(一)——numpy数据包                                       机器学习数据科学包(一)——numpy数据包

7.矩阵合并

  • np.vstack(a,b...)                                      垂直合并
  • np.hstack(a,b...)                                      水平合并
  • np.concatenate((a,b...),axis=0/1)           合并

注:合并操作正相反,0代表行1代表列。为了方便记最好还是使用vstack与hstack合并。

垂直合并

机器学习数据科学包(一)——numpy数据包                                       机器学习数据科学包(一)——numpy数据包

 

水平合并(数组的水平合并相当于连接)

机器学习数据科学包(一)——numpy数据包                       机器学习数据科学包(一)——numpy数据包

 

数组的逆实际上不翻转,想要翻转成列向量,需要加1维度

机器学习数据科学包(一)——numpy数据包                                             机器学习数据科学包(一)——numpy数据包

机器学习数据科学包(一)——numpy数据包                               机器学习数据科学包(一)——numpy数据包

 

列向量的水平合并

机器学习数据科学包(一)——numpy数据包                               机器学习数据科学包(一)——numpy数据包

列向量的垂直合并

机器学习数据科学包(一)——numpy数据包             机器学习数据科学包(一)——numpy数据包

列向量的水平合并

机器学习数据科学包(一)——numpy数据包              机器学习数据科学包(一)——numpy数据包

8.矩阵分割

  • np.vsplit(a,块数)                              垂直分割
  • np.hsplit(a,块数)                              水平分割
  • np.split(a,块数,axis=0/1)            平均分割
  • np.array_split(a,块数,axis=0/1)       不平均分割

注:分割操作正相反,0代表行1代表列。为了方便记最好还是使用vsplit与hsplit分割。

机器学习数据科学包(一)——numpy数据包

垂直分割与水平分割

机器学习数据科学包(一)——numpy数据包                                      机器学习数据科学包(一)——numpy数据包

 

平均分割(按列)

机器学习数据科学包(一)——numpy数据包                      机器学习数据科学包(一)——numpy数据包

 

平均分割(按行)

机器学习数据科学包(一)——numpy数据包                                机器学习数据科学包(一)——numpy数据包

平均分割,如果分割不了会报错

机器学习数据科学包(一)——numpy数据包                     

  机器学习数据科学包(一)——numpy数据包

不平均分割

机器学习数据科学包(一)——numpy数据包                       

 机器学习数据科学包(一)——numpy数据包

9.矩阵浅拷贝与深拷贝

与Python数组相同,矩阵是可变数据结构,直接相当于传递引用

深拷贝: a.copy()

机器学习数据科学包(一)——numpy数据包

机器学习数据科学包(一)——numpy数据包

机器学习数据科学包(一)——numpy数据包

机器学习数据科学包(一)——numpy数据包