Python数据分析知识盘点-NumPy基础

文章目录

  • 1. ndarray数组: 多维数组对象
  • 2. 通用函数
  • 3. 使用数组进行面向数组编程
  • 4. 使用数组进行文件输入和输出
  • 5 .线性代数
  • 6. 伪随机数

1. ndarray数组: 多维数组对象

理解ndarray是一种高效多维数组, 它可以对所有数据进行快速的矩阵计算而无需编写循环程序. 也就是可以把一个ndarray数组看成是一个单独的元素进行处理
理解使用import numpy as np的意义
注意ndarray数组是一个多维同类数据容器, 即每一个元素都是相同的类型
会使用ndarray数组的shapedtype属性
掌握常见的数组生成函数比如np.array(), np.arange(), np.ones()
了解通常的dtype都是按照类型名+数字来表示的, 但是实际上我们关心常用的几个对象即可
了解NumPy的常用数据类型和类型代码
会使用astype()方法显式地转换数组的数据类型, 该方法还可以将字符串转化为数字. 该方法转化浮点数为整数时, 小数点后的部分将被消除.
了解向astype()方法传入另一个数组的属性或者类型代码的方式
了解相同尺寸数组之间的运算以逐元素操作的方式发生. 不同尺寸的数组间的操作要用广播特性
掌握一维数组索引元素的方法. 并且会使用a[0][2]或者a[0,2]这样的方式来索引二维数组元素乃至索引高维数组元组
了解数组的切片只是原数组的一个视图这个概念. 即对切片的操作会影响原数组. 因为NumPy数组通常很大, 所以默认的切片操作并不是复制的形式.
会使用copy()方法显式地获得数组切片的复制
会使用省略后续索引值的方式获得降低一个维度的数组的方法, 但是注意这种对子集的选择返回的都是视图
掌握高维数组的切片方法.同时注意这个切片也是数组的视图
掌握使用布尔值数组索引的方法, 注意使用布尔值索引选择数据时总是生成数据的拷贝
注意python的关键字andor对布尔值数组没有用, 但是操作符&|时可以用的
会使用!=和在条件表达式前用~取反
会使用神奇索引来通过指明顺序复制数组的方式来生成新的数组. 比如arr[[1,0,3,2]]就是将一维元素按照1,0,3,2的顺序进行排列生成复制数组. 这个顺序的参数也可以是负数
掌握数组的reshape()方法
会使用数组的T属性得到数组(矩阵)的转置
会使用np.dot()函数得到两个矩阵的内积
会使用transpose()方法置换轴(传入新的轴编号元组即可arr.transpose((1,0,2)))
会使用swapaxes()方法交换两个轴的位置

2. 通用函数

了解通用函数是一种在ndarray数据中进行逐元素操作的函数
掌握常用的一元通用函数np.abs(), np.sqrt()
掌握常用的二元通用函数np.add(),np.multiply()

3. 使用数组进行面向数组编程

理解向量化的概念. 利用数组表达式来替代显式循环
掌握np.meshgrid()函数的用法. meshgrid函数就是用两个坐标轴上的点在平面上画网格. x坐标和y坐标合起来就可以做一些事情比如sqrt(x**2 + y**2). 举例比如p是一个m个元素的一维数组, q是一个n个元素的一维数组. 那么x , y = np.meshgrid(p , q). 那么得到的x是一个n行m列数组 (也就是n行p数组). 得到的y是一个m列n行数组(也就是m列q数组). 英文参考, 中文参考
会使用np.where()函数来代表向量化的三元表达式result = np.where(cond,xarr,yarr). where常用于根据一个数组生成一个新数组
掌握基础的数组统计方法比如sum(),mean(),min(),cumsum()
掌握向mean(),sum()等函数中传入参数axis从而按照特定的轴来统计数据.
掌握使用sum()函数来计算布尔值数组中的True个数
会使用any()all()函数来检查数组中的True个数
了解sort()方法返回的是已经排序好的数组拷贝. 并且sort方法可以传入axis值从而按轴排序
掌握常用的数组集合操作如unique()

4. 使用数组进行文件输入和输出

掌握np.save(),np.load(),np.savez(),np.savez_compressed()函数的使用
注意数组在默认情况下是以.npy的后缀的文件进行存取的, .npz则是已经压缩好的文件的后缀

5 .线性代数

掌握三种矩阵点乘的方式x.dot(y),np.dot(x,y),x @ y. 注意第一种方式没有改变数组x
掌握常用的numpy.linalg函数, 比如inv(),det()等. 一般可以用from numpy.linalg import inv, det这样的方式引入

6. 伪随机数

了解Python内建的random模块一次只能生成一个值, 但是numpy.random可以以很快的速度一次生成很多值
掌握随机数种子的概念, np.random.seed可以更改numpy的随机数种子
掌握常用的numpy.random中的函数比如seed(),rand(),randn(),normal()

你可能感兴趣的:(▶︎Python数据分析)