一 Numpy概述

1.定义

​ 开源的python科学计算库

​ 用于快速处理任意维度的数组

​ Numpy中存储对象ndarray

2.创建

np.array

3.优势

内存块风格,一体化存储

支持并行化运算

效率高与纯python–底层使用了c

二 N维数组 ndarray

1.ndarray的属性

属性名字 属性解释

ndarray.shape 数组维度元组

ndarray.ndim 数组维度

ndarray.size 数组中元素数量

ndarray.itemsize 一个数组元素的长度

ndarray.dtype 数组元素的类型

2.ndarray的类型

  • bool

  • int

  • float

  • str

    注意:若不指定,整数默认int64,float64

三 基本操作

1.生成数组的方法

生成0,1的方法

  • np.ones()
  • np.ones_like()
  • np.zeros()

1.2 从现有的数组中生成

np.array–深拷贝

np.asarray–浅拷贝

1.3生成固定范围的数组

  • np.linspace()

    生成等间距的n个

  • np.arange()

    每隔多少个生成数据

  • np.logspace

    生成以10的N次幂的数据

1.4生成随机数组

均匀分布生成

np.random.uniform()

参数:low,high,size

正态分布

np.random.normal()

参数:均值,方差,size

均值:图形的左右位置

方差:图像是瘦还是胖

​ 值越小,图形瘦高,数据越集中

​ 值越大,图形矮胖,数据越分散

2.数组的索引、切片

直接索引

先对行进行索引,再对列进行索引

3.类型的修改

对象.astype

4.数组去重

np.unique()

四 ndarray运算

1.逻辑运算

大于,小于直接进行判断

赋值:满足要求,直接进行赋值

1
2
3
4
a = np.array([[1, 2, 3, 4, 4], [1, 2, 3, 3, 5]])
a >= 4
a[a >= 4] = 0 # 可以根据bool进行赋值
a

2.通用判断函数

np.all()

所有满足要求,才返回True

np.any()

只有一个满足要求,就返回True

3.三元运算符

np.where()

满足要求赋值第一个值,否则赋值第二个值

1
2
a = np.array([[1, 2, 3, 4, 4], [1, 2, 3, 3, 5]])
np.where(a>1,1,0)# 第一个参数逻辑判断,第二三个参数赋对应的值

np.logical_and()

np.logical_or()

1
2
a = np.array([[1, 2, 3, 4, 4], [1, 2, 3, 3, 5]])
np.where(np.logical_and(a>=4,a<=5),1,0)

4.统计运算

min

max

midian–中位数

mean–平均值

std–标准差

var–方差

argmax–最大值下标

argmin–最小值下标

五 矩阵

1.矩阵和向量

矩阵:二维数组

向量:一维数组,行向量和列向量

2.加法和标量乘法

加法:对应位置相加

乘法:标量和每个位置的元素相乘

3.矩阵向量乘法

【M行,N列】x【N行,O列】=【M行,O列】

4.矩阵乘法性质

满足结合律不满足交换律

5.单位矩阵

对角线为1,其他位置为0的矩阵

6.逆矩阵

矩阵A*举证B=单位矩阵I

那么A和B互为逆矩阵

7.转置

行列互换

六 数组间运算

1.数组和数字是直接可以进行运算

2.数组和数组

满足广播机制

​ 纬度相同

​ shape对应位置为1

1
2
3
4
import numpy as np
arr1 = np.array([1, 2])
arr2 = np.array([[1], [1], [1], [1]])
arr1+arr2

3.矩阵乘法api

​ np.dot–点乘

​ np.matmul–矩阵相乘

注意:np.dot既可以进行标量相乘,也可以进行向量乘法。np.matnul只能进行向量乘法

1
2
3
4
5
6
7
8
9
10
import numpy as np
arr1 = np.array([1, 2])
num=3
arr2 = np.array([[2], [2]])
res1=np.dot(arr1,1)
res1
res2=np.dot(arr1,arr2)
res2
res3=np.matmul(arr1,arr2)#只能两个矩阵相乘
res3==res2

numpy官网文档