目前小编的借调任务已经完成,借调到其他组完成了自己的工作,有需要的同学可以看下相关的文章:Python(Flask)+ React && Golang(Gin)+ Vue(Element),然后小编认为可以回到原来的组继续phper的工作,没想到,刚做完支持工作,现在又被借调到了Python项目部RolePlay数据组,目前的情况是需要做数据分析并培训相关人员,所以小编不得已又开始了紧张的复习工作已经培训文档得撰写工作,有需要的小伙伴自取。
前面已经给他们培训过Flask框架的相关知识,现在做数据分的话,个人认为技术点不难,但是比较繁复,所以需要培训NumPy和Pandas组件无论是NumPy还是Pandas,个人经验:只要掌握好了key、value、Indexes(索引),以及对象,这个就是很简单的一个东西。
NumPy:
1.强大的n维数组结构
2.线性代数、傅里叶变换和随机数特征
3.速度:基于NumPy的算法要比纯Python快10到100倍(甚至更快),并且使用的内存更少
属性:
ndarray.ndim:数组的维数,在Python中叫做rank
ndarray.shape: 数组的维数。它是一组长度由数组维数(ndim)决定的数字。例如,长度为n的一维数组的形状是n,而n行m列的数组的形状shape是(n,m)。
ndarray.size:数组中所有元素的数量。
ndarray.dtype:数组中元素的类型,如numpy.int32、numpy.int16或numpy.float64。
ndarray.itemsize:数组中每个元素的大小,以字节为单位
ndarray.data:用于存储数组元素的缓冲。通常我们只需要通过下标来访问元素,而不需要访问缓冲区。
指定维度:
初始化:2表示数组数据维度,3表示单一维度的数据个数;
data = np.random.randn(2, 3)
输出data: array([[-0.2047, 0.4789, -0.5194],[-0.5557, 1.9658, 1.3934]])
数据获取:
数据计算:data * 10
输出:array([[ -2.0471, 4.7894, -5.1944],[ -5.5573, 19.6578, 13.9341]])
数据计算: data + data
输出:array([[-0.4094, 0.9579, -1.0389],[-1.1115, 3.9316, 2.7868]])
函数:
函数:shape(一个表示各维度大小的元组)
data.shape
输出: (2, 3)
函数:dtype(一个用于说明数组数据类型的对象):
data.dtype
输出: dtype('float64')
唯一化以及其它的集合逻辑
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
np.unique(names)
输出:array(['Bob', 'Joe', 'Will'],
dtype='<U4')
ints = np.array([3, 3, 3, 2, 2, 1, 1, 4, 4])
np.unique(ints)
输出array([1, 2, 3, 4])
创建:
创建一维数组:
data1 = [6, 7.5, 8, 0, 1]
arr1 = np.array(data1)
输出:array([ 6. , 7.5, 8. , 0. , 1. ])
创建二维数组:
data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr2 = np.array(data2)
输出:array([[1, 2, 3, 4],[5, 6, 7, 8]])
zeros和ones分别可以创建指定长度或形状的全0或全1数组
np.zeros(10)
输出:array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.zeros((3, 6))
输出array([[ 0., 0., 0., 0., 0., 0.],[ 0., 0., 0., 0., 0., 0.],[ 0., 0., 0., 0., 0., 0.]])
np.empty((2, 3, 2))
输出:array([[[ 0., 0.],[ 0., 0.],[ 0., 0.]],[[ 0., 0.],[ 0., 0.],[ 0., 0.]]])
创建递增数组:
np.arange(15)
输出:array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
切片(左包括,右开放):
arr = np.arange(10)
输出:array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[5]
输出:5
切片:arr[5:8]
输出:array([5, 6, 7])
修改:arr[5:8] = 12
输出 array([ 0, 1, 2, 3, 4, 12, 12, 12, 8, 9])
切片修改值,会影响到原数组
arr_slice = arr[5:8]
输出:array([12, 12, 12])
arr_slice[1] = 12345
输出:array([ 0, 1, 2, 3, 4, 12, 12345, 12, 8, 9])
索引:
布尔型索引:
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
data = np.random.randn(7, 4)
输出:array([[ 0.0929, 0.2817, 0.769 , 1.2464],[ 1.0072, -1.2962, 0.275 , 0.2289],[ 1.3529, 0.8864, -2.0016, -0.3718],[ 1.669 , -0.4386, -0.5397, 0.477 ],[ 3.2489, -1.0212, -0.5771, 0.1241],[ 0.3026, 0.5238, 0.0009, 1.3438]

最低0.47元/天 解锁文章
1379

被折叠的 条评论
为什么被折叠?



