Pandas_Task01:预备知识

学习目标:

python基础


学习内容:

提示:这里可以添加要学的内容
例如:
1、 python基础
2、 pandas基础


遗漏的python知识

  1. map函数:它返回的是一个 map 对象,需要通过 list 转为列表:
map(function, iterable, ...)
list(map(lambda x: 2*x, range(5)))#e.g.

numpy总结

引用模 块 函数/属性名 实例 说明
import numpy as np
1)基本属性
array.ndim 数组维度
array.size 数组元素个数
array.dtype 数组数据类型
2) 基本函数
np.set_printoptions() np.set_printoptions(precision=4, suppress=True) 设置输出精度,是否使用科学计算
np.array() np.array([[1,2,3,4],[0,1,2,3]] ) 创建 ndarray对象
np.arange() np.arange(15) np.arrange(-3,3,0.2) #0.2为步长 创建一个等差数组
np.zeros() np.zeros(10) np.zeros( (3,6) ) 生成一个给定大小的全0数组
np.ones() np.ones( (2,3,2) ) 生成一个给定大小的全1数组
np.reshape() np.arange(15).reshape(3, 5) 将一维数组转换为指定的多维数组
3) 通用数学函数
np.abs()、np.fabs() np.abs(x),np.fabs(x) 计算整数、浮点数或复数的绝对值
np.sqrt() np.sqrt(arr) 计算各元素的平方根
np.square() np.square(x) 计算各元素的平方
np.exp() np.exp(arr) 计算各元素的指数
np.sin()、np.cos()、np.cosh()、np.sin() np.sinh()、np.tan()、np.tanh() np.sin(arr) 普通和双曲型三角函数
np.floor() np.floor(arr/10) #将arr转换成整数形式的十分制分数 计算各元素的floor值,即小于等于该值的最大整数
np.ceil() 计算各元素的ceiling值,即大于等于该值的最小整数
3) 二元函数
np.add() 将数据中对应的元素相加
np.subtract() 从第一个数组中减去第二个数组中的元素
np.multiply() 数组元素相乘
np.divide() 除法或向下取整除法
np.power() 对第一个数组中的元素A,根据第二个数组中的相应元素B,计算AB
np.mod() 元素级的求模运算
np.copysign() 将第二个数组中的值的符号复制给第一个数组中的值
np.equal(),np.not_equal() 执行元素级的比较运算,产生布尔型数组
4) 聚集函数
array.sum() arr.sum() #全部求和 arr.sum(1) #按给定轴求和,产生低一维的数组 求和函数
array.mean() arr.mean() 算术平均值
array.min()、array.max() arr.max()、arr.min() 最大值和最小值
array.argmin()、array.argmax() arr.argmax()、arr.argmin() 最大值和最小值的索引
array.cumsum() arr.cumsum(axis = 1) #逐列求累加和 从0开始向前累加各元素
array.cumprod() arr.cumprod() 从1开始向前累乘各元素
5) 随机生成函数
np.random.random() 随机产生[0,1)之间的浮点值
np.random.randint() np.random.randint(0, 2, size = (2,10)) #生成0-1之间的整数随机数,维度是2*10 随机生成给定范围内的一组整数
np.random.uniform() 随机生成给定范围内服从均匀分布的一组浮点数
np.random.choice() 在给定的序列内随机选择元素
np.random.normal() np.random.normal( 1, 2.1, size(4,4) ) #生成4*4的矩阵,均值为1,方差为2.1 随机生成一组服从给定均值和方差的正态分布随机数
6) 条件逻辑的数组运算
np.where() result = np.where(cond, xarr, yarr) np.where( arr>0, 2, -2) #将arr数组中>0的替换为2,其余替换为-2 np.where( arr>0, 2, arr) #将arr数组中>0的替换为2,其余不变 三元表达式:x if condition else y的矢量化版本

Pandas_Task01:预备知识
可在这里下载

练习题自己的想法

#作业
M1 = np.random.rand(2,3)
M2 = np.random.rand(3,4)
res = np.empty((M1.shape[0],M2.shape[1]))
for i in range(M1.shape[0]):
     for j in range(M2.shape[1]):
        item = 0
        for k in range(M1.shape[1]):
             item += M1[i][k] * M2[k][j]
        res[i][j] = item
(abs(M1@M2 - res) < 1e-15).all() # 排除数值误差
#------------------------------------------------------------#

#rewrite
result = np.array([[np.sum(row*col) for col in Mat2.T ] for row in Mat1  ])
  1. 设矩阵 Am×n ,现在对 A 中的每一个元素进行更新生成矩阵 B ,更新方法是 Bij=Aij∑k=1n1Aik
A= np.mat('1 2 3;4 5 6;7 8 9')
B = [ [A[r][c] * np.sum(1/A[r,:]) for c in range(A.shape[1])] for r in range(A.shape[0])  ]
  1. Chi-SquareStatistic
np.random.seed(0)
A = np.random.randint(10, 20, (8, 5))
B = (A.sum(axis=0)*A.sum(axis=1).reshape(-1,1))/A.sum()
((A-B)**2/B).sum()
np.random.seed(0)
m, n, p = 100, 80, 50
B = np.random.randint(0, 2, (m, p))
U = np.random.randint(0, 2, (p, n))
Z = np.random.randint(0, 2, (m, n))
##就是求一个2-范数emmm
(((B**2).sum(1).reshape(-1,1)+(U**2).sum(0)-2*B@U)*Z).sum()
A = np.array([3,2,1,2,3,4,6])
np.diff(np.nonzero(np.r_[1,np.diff(x)!=1,1])).max()
上一篇:Task01-目标检测基础和VOC数据集


下一篇:【Task01】LeetCode腾讯精选打卡