numpy 是一项 python 语言编写的,开源的,使用 github 管理的数据分析工具项目。它使用与 matlab 相似结构的数组操作单元、矩阵操作单元,两种操作单元十分类似除了一些调用、规格和适配性问题不同,混用的话几乎不影响实际中的轻度使用。市面上很多具体的数据分析和可视化工具库都是以该库为基础创建和运行,如 scipy 、 pandas (暂时到这,后面学了再加)。
但是 numpy 更推荐使用数组模式,它的很多方法和函数都会返回一个实例化的 ndarray 对象,这个对象相较于 matrix 矩阵对象维度数宽泛,后者在 numpy 库里只能是2维的,想加维只能自己设置(在矩阵外面套列表)。如果数据中有 scipy.parse 疏松矩阵(暂时还不了解这是啥 😦),就只能使用 matrix 对象,不知道为什么数组对象不适配这个矩阵。
一、导入使用 numpy 库
1、下载安装, numpy 库是第三方库:
pip install numpy
2、导入使用:
# import numpy
# from numpy import * # 这会将numpy.__init__文件中可用的属性、方法都导入到文件中,在使用这些属性、方法时不必加np.或numpy.前缀,但可能会造成命名上的重复冲突,特别是在自己命名变量或用此方法导入大量模块时。
import numpy as np # 很多人建议这样用。
二、常用数组生成方法
一般情况生成方法会返回一个实例化的 ndarray 对象。
a1 = np.arange() # 指定生成维量的一维数组
a2 = np.array() # 将传入的列表、元组、字符串、集合、字典、生成器转成数组
ndarr = np.ones() # 生成一个全是1的数组
ndarr = np.ones_like() # 根据传入数组生成一个维度相同,元素全为1的数组
ndarr = np.zeros() # 生成一个全是0的数组
ndarr = np.zeros_like() # 同理
ndarr = np.full() # 生成一个指定维度,指定元素内容的数组
ndarr = np.full_like() # 根据传入数组维度生成一个指定内容的数组
ndarr = np.eye() # 生成对角线为1的数组,其余元素为0
ndarr = diag() # 根据传入数组生成一个对角线与传入数组保持一致的数组
ndarr = diagflat() # 将传入数组转为一维后,传入diag()
# ……其他
三、常用数组操作方法
一般情况数组操作后会返回一个 ndarray 数组对象。
# 假定现在我有一个命名为ndarr的数组
# 通用操作
ndarr.ndim # 查看数组维数
ndarr.size # 查看数组元素个数
ndarr.dtype # 查看数组元素数据类型
ndarr.shape # 查看数组维量大小,返回元组
# 索引
ndarr[行数,列数]
# 切片
ndarr[m1:m2,n1:n2] # :表示从第m1行连续取到第m2行,从第n1行连续取到第n2行。
# 筛选
ndarr.where(条件,x,y) # 条件为真时输出x内容,为假时输出y内容
ndarr > number # 返回一个shape与ndarr的数组,数组元素全为bool值
ndarr2[ndarr1 > number] # 返回满足判断条件的所有元素成一个新数组,ndarr1和ndarr2保持shape相同即可。
# 查找
np.any() # 判断传入数组是否存在元素不为0、false
np.all() # 判断传入数组是否所有元素都不为0、false
# 维度转换
ndarr.reshape(m,n) # 将ndarr数组转为指定的维度,m*n = ndarr.size
ndarr.flatten() # 将ndarr转为一维数组,元素个数不变。
ndarr.transpose() # 将ndarr按照对角线翻转
# 排序
np.sort(ndarr) # 对ndarr排序,axis表示以哪一轴为排序标准,默认-1.
# 去重
np.unique(ndarr) # 对ndarr元素去重,返回去重后的数组
# 包含判断
numpy.isin(x,y) # 判断x中的元素是否都在y中,返回一个元素为bool值的ndarray对象,shape和x一致
四、数组运算法则
1、广播原则(broadcast)简介
广播原则规定:1-相运算的数组同一维度的维量要么相等;2-如果不等,则其中一个数组相应维度的维量必须为1;3-如果不等,则在维量为1的数组以另一数组对应维度的维量“补齐”;4-运算得到的数组结果的所有维度的维量值等于运算数组对应维度的最大维量值。
2、加减乘除乘方对数
两个数组计算是基于对位元素计算:
加:+,减:-;乘:*;除:/;乘方:**;
两个数组计算基于矩阵运算:
乘法:@
五、统计学概念:统计量、参数、拟合等
后面具体实例操作了解,这里不做过多了解。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律