type
status
date
slug
summary
tags
category
icon
password
Email
文章首发于:My Blog 欢迎大佬们前来逛逛
1. NumPy矩阵
1.1 mat函数
data:表示输入的数组或者字符串,使用‘,’分割列,使用‘;’分割行
创建两个普通的矩阵:
需要注意:mat创建的矩阵是不会产生副本的,即共享内存:
1.2 matrix函数
matrix也是创建矩阵的:
data:数组或者字符串,与mat一样
copy:表示创建的矩阵与原数组data是不是拷贝的,如果是拷贝的,则不共享内存;否则共享内存
注意到:mat默认共享内存,matrix可以选择拷贝,他们的不同仅此而已
1.3 bmat函数
bmat可以产生一个分块矩阵:
obj:数组或者字符串
ldict,gdict:字典
1.4 矩阵运算
我们所熟知的运算,NumPy矩阵运算都可以实现:
矩阵的特有属性:
- T:转置
- H:共轭转置
- I:逆矩阵
- A:转换为二维数组
2. NumPy通用函数
2.1 ufunc运算函数
注意:ufunc的运算操作是对于数组的运算,而不是矩阵,矩阵的运算是 NumPy 实现的。
ufunc的运算不是矩阵的运算,因此对于不符合矩阵乘法条件的两个数组相乘是合法的。
np.all:对于数组的元素需要全部满足
np.any:对于数组的元素只需要存在即可
创建数组:
2.2 ufunc广播机制
对于数组的运算,我们会对数组的shape有要求;但是如果shape不一样,我们仍然可以对他们进行运算操作,只需要对他们使用广播机制即可。
广播机制必须满足的前提条件:
- 两个数组必须具有相同的维数,每个维的长度要么是相同的,要么是1
- 维数少的数组需要在其形状上加上n个长度为1的维数,以便使得满足条件1.
例子1:
a1数组是 2行4列的,a2数组是 1行4列的。
我们可以发现,a2数组的行数少 1,因此需要在a2的shape上对其行数加1,使得a2数组变为(2,4),那么他们的形状相同,模拟为使得在B的末尾新添加一行与第一行相同的元素,因此可以相加,总结为:
A.shape=(2,4) ;B.shape=(1,4) ----> B.shape=(2,4)
然后再执行A与B相加。
例子2:
此时我们的a1的shape是 4行3列,a2的shape是 4行1列,因此需要在a2的shape中对a2的列数加1,直到他们的shape相同,使得a2也变为 4行3列的,模拟在a2的后面新添加两列与第一列相同的元素即可
A,shape=(4,3) B.shape=(4,1) ----> B.shape=(4,3)
然后再执行相加。
2.3 统计分析函数
2.3.1 排序函数
sort函数直接对对象数组进行升序排序:
使用 np.sort() 对数组排序后生成一份拷贝
argsort函数会产生索引数组,其中索引表示的是按照升序排序后,对应位置的元素在原数组中的对应的索引位置
例如新生成的索引数组的 :
- [0] = 8,表示这个排序后的值[0]位置的值在原数组中是第8个(下标0开始),为10
- [1] = 1,表示为第1个,为 11
- [2] = 2,表示为第2个,为 11
....
lexsort表示对多个键的数组进行间接排序,也是返回一个索引数组。
2.3.2 去重与重复函数
unique函数的作用是去掉重复的元素。
unique可以指定参数:
- return_index:是否返回唯一元素的索引
- return_inverse:是否返回用索引重建的数组
- return_counts:是否返回唯一数组中元素出现的次数
tile用于重复数组的值:
A:表示需要重复的数组
reps:重复的次数
如下,我们把5*2的数组重复了三次,让他变成了 5 * 6的
repeat函数也是重复数组的值:
axis:为0则表示垂直(行数增加),为1表示水平(列数增加):
2.3.3 常用统计函数
基本统计函数:
- min ,max amax, amin:表示求得最大值和最小值
- ptp:求最值差(最大值与最小值之差)
- percentile:求分位数
表示数据波动函数:
- median:求中位数
- mean:求算数平均值
- average:求加权平均值
- var:方差
- std:标准方差
数据分布密度函数:
- histogram
- bincout
数据相关性函数:判断两个数组是否具有一定的一致性
- cov:协方差
- corrcoef:协方差系数
求值函数:
- sum:求数组所有元素之和
- cumsum:求数组到某位置的累加和
- prod:所有元素之积
- cumprod:数组到某位置的累乘值
- 作者:Yuleo
- 链接:https://www.helloylh.com/article/pythonDataAnalyze2
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。