微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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的矢量化版本

numpy总结

可在这里下载

练习题自己的想法

#作业
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()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐