1. numpy&pandas在数据处理的时候,速度远远快于python。因为numpy&pandas底层是C语言直接写的。
pandas是numpy的升级版本
他们都应用到了矩阵的运算
2.numpy的基本属性:
2.1 numpy是基于矩阵的运算
矩阵:基于1维或者2维的一个数组
举例:[[1,2,3],
[2,3,4]]
这是一个列表,想要转换成numpy能够识别的矩阵
2.2 numpy.array(列表) ——>将列表转换成了矩阵
举例:
array = numpy.array([[1,2,3],
[2,3,4]])
2.3 numpy 矩阵的属性:
2.3.1: .ndim——几维的矩阵(1or2维)
eg: array.ndim
2.3.2 : .shape——矩阵的形状——几行几列
2.3.3: .size——总共有多少个元素
2.4 numpy中如何创建各种各样的矩阵和数组?
2.4.1 np.array(list, dtype = ....)
eg: np.array([2,23,4],dtype=int)
np.array([[1,2,3],
[2,3,4]])
2.4.2 np.zeros((行数,列数))——输出全部为0的矩阵
eg: np.zeros((3,4))
2.4.3 np.ones((行数,列数), dtype = ....)——输出全部为1的矩阵
eg: np.ones((3,4),dtype = np.int32)
2.4.4 np.empty((行数,列数))
结果返回一个矩阵,数值型元素,全部是随机数;Object类型元素是None
好处是,生成矩阵的速度最快;但是,貌似没什么用。
2.4.5 np.arrange(起始值,终止值,步长)
numpy中的类似range()的方法
2.4.6 .reshape((行数,列数))
2.4.7 np.linspace(起始值,终止值,几段)
把一个连续的区间,分成几等分的几段。
3. numpy的基础运算:
3.1 矩阵的加减法:+、-
3.2 几次方,幂的形式:**
eg : a ** 3
——矩阵中每个元素都进行幂函数运算
3.3 三角函数:
eg: np. sin(A)——矩阵A中的每个元素进行sin运算,输出结果组成一个矩阵
np.cos(A)
np.tan(A)
3.4 矩阵中的每个元素大于或者小于某个数:
eg: A = np.array([[1,2,3],
[4,5,6])
B = A < 3
B = A == 3
B = A > 3
3.5 矩阵乘法:
3.5.1 *: 矩阵中的每个元素,相应位置元素对应相乘
eg : A * B
3.5.2 np.dot(矩阵A,矩阵B)——矩阵的乘法:A x B
eg: np.dot(A, B)
3.5.3 矩阵A.dot(矩阵B)——同3.5.2
eg: A.dot(B)
3.6 生成一个随机数(0-1)的矩阵:
np.random.random((行数,列数))
————第1个random是random模块,第二个random是方法:生成0-1之间的随机数
3.7 np.sum(array)——整个array中元素求和
3.8 np.min(array)——整个array中的最小值
3.9 np.max(array)——整个array中的最大值
3.10 在某一个维度上,求sum和最大最小
np.sum(array,axis = ...)
np.max(array, axis =...)
np.min(array, axis =....)
在某一个维度上,求sum和最大最小
axis指定维度,axis = 0,是在每列上进行运算;axis = 1 是在每一行上进行运算
4.numpy基础运算2:
4.1 查找矩阵中,最小值的索引:
np.argmin(矩阵)
eg: np.argmin(A)
4.2 最大值的索引:
np.argmax(A)
4.3 平均值:
np.avr(A)
或者
A.mean()
4.4 中位数
np.median(A)
4.5 累加和:
np.cumsum(A)
4.6 累差:
np.diff(A)
4.7 逐行进行排序:每一行内部从小到大进行排序
np.sort(A)
4.8 矩阵转置:
np.transpose(A) 或者 A.T
4.9 滤波:
np.clip(A, a_min, a_max)
a_min:令矩阵A中所有小于a_min的数字都变成a_min
a_max:令矩阵A中所有大于a_max的数字都变成a_max
4.10 np.mean(A, axis =0或1)
对每一行或者每一列进行求平均值
axis =0 ——列
axis =1——行
5. numpy的索引:
5.1 矩阵的第三行第2列:
(1)方式1:A[2][1]
(2)方式2:A[2,1]
5.2 for循环迭代:
5.2.1 for循环迭代行:
for row in A:
print(A)
——这样打印出来的就是矩阵中的每一行
5.2.2 for循环迭代列:使用转置
for column in A.T:
print(column)
5.2.3 for循环迭代项目item:使用flat——将多维数组,拉平变成一个一维数组
for item in A.flat:
print(item)
A.flatten(),返回一个将矩阵变成一整个数组
A.flat()返回一个迭代器
6.将numpy的array进行合并:
6.1 上下合并:.vstack((arrayA,arrayB))
eg: A = np.array([1,1,1])
B = np.array([2,2,2])
np.vstack((A,B))
6.2 左右合并:.hstack(arrayA,arrayB)
eg: np.hstack(arrayA,arrayB)
6.3 将横向数列变成纵向数列:
[1,1,1] ——> [1,
1,
1]
A[np.newaxis,:] ——在行上面加了一个维度
A[:,np.newaxis] ——在列上面加了一个维度
np.newaxis——增加一个维度
6.4 np.concatenate()
——可以定义在哪个维度进行合并
np.concatenate((A,B,B,A), axis =0)
axis =0 纵向合并
axis =1 横向合并