numpy
1.numpy生成数组:
生成一维数组有几种方法:
1:t=np.array([x1,x2,x3,….. ])在里面填入你的数据即可
2:t=np.array(range(x))可以生成一个从0到x-1的数组
3:t3=np.arange(10)#可设置初始位置和步长
代码演示:
1 | #time 2022/1/7 |
创建多维数组的方法:
1 | import numpy as np |
这里,我们使用两个arange
方法,创建了两个1x6
的一维数组,然后使用numpy
的array
方法,将两个一维数组组合成一个2x6
的二维数组。从而达到了创建多维数组的目的。
numpy
创建的数组可以直接复制,具体代码示例如下:
1 | import numpy as np |
这样就生成了一个4*6的多维数组
运行结果代码:
1 | t1[1]的值 8 |
2.numpy中的转置:
转置是一种变换,对于numpy中的数组来说,就是在对角线方向交换数据,其目的是为了更方便的处理数据。
三种转置方法,用到了三个函数:t.transpose() t.swapaxes(1,0) 和t.T,个人认为t.T比较简便
代码演示:
1 | import numpy as np |
运行结果代码:
1 | 第一种转置后的矩阵 |
3.numpy中的索引和切片:
我们可以对numpy数组中的元素取行,取列,取多行,取多列
代码演示:
1 | import numpy as np |
一维Numpy
数组的切片操作与Python
列表的切片一样。下面首先来定义数字0 1 2
直到8
的数组,然后通过指定下标3
到7
来选择数组的部分元素,这实际上就是提取数组中值为3
到6
的元素。
1 | In: import numpy as np |
同时用下标选择元素,下标范围从0
到7
,并且下标每次递增2
,如下所示:
1 | In: a[:7:2] |
也可以像Python
数组一样,用负值下标来反转数组:
1 | In: a[::-1] |
对于二维数组的索引,类似与Python
数组的列表:
1 | In: a=np.array([[1,2,3],[4,3,2]]) |
4.numpy中的数值修改:
通过操作使列和行的值变成零以及修改某个数的值
代码演示:
1 | import numpy as np |
运行结果代码:
1 | [[ 0 0 0 3] |
5.numpy中的布尔索引:
t为一个数组,通过t<x,可以使小于x的数变成True输出,大于x则为False,那么t>x使相反的。
代码演示:
1 | import numpy as np |
运行结果代码:
1 | 小于10为True大于10为False |
6.numpy中三元运算符:
通过np.where()函数可以调整值
代码演示:
1 | #Gyh |
7.numpy中clip裁剪:
代码演示:
1 | #numpy中clip裁剪 |
8.numpy中的基本运算:
1 | a = np.array([[1,2,3],[4,5,6]]) |
向量与向量之间
1.加法
1 | t1=np.add(a,b) |
2.减法
1 | t1=np.subtract(a,b) |
3.乘法(X乘)
1 | t1=np.multiply(a,b) |
4.乘法(点乘)
1 | a = np.array([[1,2,3],[4,5,6]]) |
5.除法
1 | a = np.array([[1,2,3],[4,5,6]]) |
向量与标量之间
1 | a=np.array([[1,2,3],[4,5,6]]) |
1.加法
1 | In: a +1 |
2.减法
1 | In: a -1 |
3.乘法
1 | In: a*2 |
4.除法
1 | In: a/2 |
5.求余
1 | In:a%2 |
6.矩阵转置
1 | In:a.T |
7.矩阵的逆
矩阵可逆的充要条件是矩阵满秩。
1 | import numpy as npimport numpy.linalg as lga = np.array([[1,2,3],[4,5,6],[7,8,9]]) |
9.numpy中的常用统计函数:
求和:t.sum(axis=None)
均值:t.mean(a,axis=None)
受离群点的影响较大 中值:np.median(t,axis=None)
最大值:t.max(axis=None)
最小值:t.min(axis=None)
极值:np.ptp(t,axis=None) 即最大值和最小值只差
标准差:t.std(axis=None)
10.数组的折叠
从深度看,数组既可以横向叠放,也可以竖向叠放。因此,我们我们对数组进行堆叠,Numpy
数组对堆叠包含以下几个函数: 首先,创建两个数组。
1 | In: a = np.arange(9).reshape(3,3) |
hstack()
水平叠加。
1 | In: np.hstack((a,b)) # 注意 这里是两层括号 |
vstack()
垂直叠加。
1 | In: np.vstack((a,b)) |
dstack()
深度叠加。
1 | In: np.dstack((a,b)) |
11.数组的拆分
使用Numpy
,我们可以方便的对数组进行拆分,比如使用hsplit()
、vsplit()
、dsplit()
、split()
函数等。
拆分数组
准备数组。
1 | import numpy as np |
hsplit()
横向拆分。
1 | In: np.hsplit(a,3) |
vsplit()
纵向拆分。
1 | In: np.vsplit(a,3) |
dsplit()
深度拆分。 深度拆分要求数组的秩大于等于3
。
1 | c= np.arange(27).reshape(3,3,3) |