mooc课程地址:https://www.icourse163.org/learn/BIT-1001870002?tid=1003248008#/learn/announce
一、关于数据分析
numpy的基础理论是线性代数,利用矩阵的方式计算,可以去掉元素运算时的循环,提高效率。
二、基本概念与理解
Numpy库
import numpy as np
NumPy是一个开源的Python科学计算基础库,包含:
①一个强大的N维数组对象(ndarray)广播功能函数
②整合C/C++/ Fortran代码的工具
③线性代数、傅里叶变换、随机数生成等功能
与后面内容的联系:NumPy是SciPy、Pandas等数据处理或科学计算库的基础
N维数组对象: ndarray
相当于C语言的结构体?
ndarray : 是一个多维数组对象,由两部分构成:
①实际的数据
②描述这些数据的元数据(数据维度、数据类型等)
ndarray数组一般要求所有元素类型相同(同质) , 数组下标从0开始
三、ndarray类型属性、创建和变换
1、ndarray对象的属性
属性 | 说明 |
---|---|
ndim | 秩,即轴的数量或维度的数量 |
shape | ndarray对象的尺度,对于矩阵, n行m列 |
size | ndarray对象元素的个数,相当于. shape中n*m的值 |
dtype | ndarray对象的元素类型 |
itemsize | ndarray对象中每个元素的大小,以字节为单位 |
2、ndarray数组的创建方法
①从Python中的列表、元组等类型创建ndarray数组
②使用NumPy中函数创建ndarray数组,如:arange, ones, zeros 等
③从字节流(raw bytes)中创建ndarray数组
④从文件中读取特定格式,创建ndarray数组
3、ndarray数组的变换
对于创建后的ndarray数组,可以对其进行维度变换和元素类型变换
维度变换
方法 | 说明 |
---|---|
. reshape(shape) | 不改变数组元素,返回一-个shape形状的数组,原数组不变 |
.resize(shape) | 与.reshape( )功能一致,但修改原数组 |
. swapaxes(ax1, ax2) | 将数组n个维度中两个维度进行调换 |
. flatten() | 对数组进行降维,返回折叠后的一维数组,原数组不变 |
元素类型变换
#astype()方法一定会创建新的数组(原始数据的一个拷贝),即使两个类型一致
new_a = a.astype(new_type)
#ndarray数组向列表的转换
ls= a.tolist()
3、数组的索引和切片
索引:获取数组中特定位置元素的过程
切片:获取数组元素子集的过程
一维数组的索引和切片:与Python的列表类似,[起始编号: 终止编号(不含): 步长],3元素冒号分割,编号0开始从左递增,或‐1开始从右递减
多维数组的索引:每个维度一个索引值,逗号分割
多维数组的切片:选取一个维度,用每个维度切片方法,与一维数组相同,每个维度可以使用,步长跳跃切片
4、ndarray数组的运算
数组与标量之间的运算:数组与标量之间的运算作用于数组的每一个元素
NumPy一元函数:对ndarray中的数据执行元素级运算的函数
函数 | 说明 |
---|---|
np.abs(x) np. fabs(x) | 计算数组各元素的绝对值 |
np. sqrt(x) | 计算数组各元素的平方根 |
np. square(x) | 计算数组各元素的平方 |
np.log(x) np. log10(x)np . log2(x) | 计算数组各元素的自然对数、10底对数和2底对数 |
np. ceil(x) np. floor(x) | 计算数组各元素的ceiling值或floor值 |
np.rint(x) | 计算数组各元素的四舍五入值 |
np. modf(x) | 将数组各元素的小数和整数部分以两个独立数组形式返回 |
np.cos(x) np. cosh(x) np. sin(x) np. sinh(x) np. tan(x) np. tanh(x) | 计算数组各元素的普通型和双曲型三角函数 |
np . exp(x) | 计算数组各元素的指数值 |
np. sign(x) | 计算数组各元素的符号值, 1(+), 8, -1(-) |
NumPy二元函数
函数 | 说明 |
---|---|
+ - * / ** | 两个数组各元素进行对应运算 |
np . maximum(x,y) np . fmax( ) np. minimum(x,y) np . fmin() | 元素级的最大值/最小值计算 |
np . mod(x,y) | 元素级的模运算 |
np. copysign(x,y) | 将数组y中各元素值的符号赋值给数组x对应元素 |
> < >= <= == != | 算术比较,产生布尔型数组 |