day17 学习笔记

文章目录


前言

通过今天的学习,我掌握了numpy中有关增删改查以及部分常用统计函数的使用方法


一、数组的增删改查

1.resize函数

  • 与reshape函数的功能相近,但可以生成任意形状的新数组,会自动根据输入的形状进行元素填充
  • 如果元素数量不够,重复数组元素来填充新的形状;若数量过多,则舍弃多余元素
python 复制代码
array_one = np.arange(6).reshape(2, 3)
print(array_one)
print('resize 后数组:\n', np.resize(array_one, (3, 3)))
print('resize 后数组:\n', np.resize(array_one, (2, 2)))

2.append函数

  • 数组与列表相似,也有append方法,用于将元素追加到数组的末尾
  • append(arr, values, axis=None)
  • 当指定axis时,要求添加的数组与对应维度的形状一致
python 复制代码
arr = np.arange(6).reshape(2,3)
print(arr)
arr_1 = np.append(arr,[[1,1,1],[1,1,1]])
print(arr_1)
arr_1 = np.append(arr,[[1,1,1],[1,1,1],[1,1,1]],axis=0)
print(arr_1)
arr_1 = np.append(arr,[[1,1,1,1],[1,1,1,1]],axis=1)
print(arr_1)

tips:可以这样理解axis的含义:

3.insert函数

  • 向数组指定索引位置插入元素
  • insert(arr, idx, values, axis)
  • 该函数会自动使用广播机制
python 复制代码
arr = np.arange(6).reshape(2,3)
arr1 = np.insert(arr,1,[6]) #未指定axis返回一维数组
print(arr1)
arr1 = np.insert(arr,1,[6],axis=0) #在索引为1的行插入[6],并自动广播
print(arr1)
arr1 = np.insert(arr,1,[6],axis=1) #在索引为1的列插入[6],并自动广播
print(arr1)

4.delete函数

  • 删除指定索引的元素
  • delete(arr, obj, axis)
python 复制代码
arr = np.arange(6).reshape(2,3)
arr1 = np.delete(arr,[1]) #未指定axis,先将数组转化为一维,再删除索引为1的元素
print(arr1)
arr1 = np.delete(arr,[1],axis=0) #删除索引为1的行
print(arr1)
arr1 = np.delete(arr,[1],axis=1) #删除索引为1的列
print(arr1)

5.argwhere函数

  • 返回数组中非0元素的索引
  • 若是多维数组,则返回包含行列索引坐标的数组
python 复制代码
arr = np.arange(6).reshape(2,1,3)
print(arr)
print(np.argwhere(arr))
print(np.argwhere(arr<3)) #可以结合使用布尔索引
  • where函数返回一个元组,功能与argwhere相似,使用更加方便
  • 当where函数有三个参数时,它会根据条件来选择元素,第一个参数是条件,第二个参数是满足条件时选择的值,第三个参数是不满足条件时选择的值
python 复制代码
arr = np.array([1, 2, 3, 4, 5])
new_arr = np.where(arr > 3, 10, 0)
print("新数组:")
print(new_arr)

6.unique函数

  • 去除数组中的重复元素
  • unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)
    return_index:如果为 True,则返回新数组元素在原数组中的位置(索引)
    return_inverse:如果为 True,则返回原数组元素在新数组中的位置(逆索引)
    return_counts:如果为 True,则返回去重后的数组元素在原数组中出现的次数
python 复制代码
arr = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
unique_elements, inverse_indices = np.unique(arr,return_inverse=True)
print(np.unique(arr))
print(inverse_indices) #逆索引

二、统计函数

1.amax,amin函数

  • 找出数组中的最大,最小值(可以指定axis)
python 复制代码
arr = np.arange(6).reshape(2,3)
print(arr)
print(np.amax(arr))
print(np.amax(arr,axis=0)) #找出每一列的最大值
print(np.amax(arr,axis=1)) #找出每一行的最大值

2.ptp函数

  • 计算数组元素的极差值(可指定axis)
python 复制代码
arr = np.arange(6).reshape(2,3)
print(arr)
print(np.ptp(arr))
print(np.ptp(arr,axis=0)) 
print(np.ptp(arr,axis=1))

3.median函数

  • 将数组元素由小到大排序后取中位数(可指定axis)
python 复制代码
arr = np.arange(6).reshape(2,3)
print(np.median(arr))
print(np.median(arr,axis=0))
print(np.median(arr,axis=1))

4.mean函数

  • 计算数组元素的算数平均数(可指定axis)
python 复制代码
arr = np.arange(6).reshape(2,3)
print(np.mean(arr))
print(np.mean(arr,axis=0))
print(np.mean(arr,axis=1))

5.average函数

  • 计算数组元素的加权平均值(可指定axis)
  • 相较于平均值,可以减少极差对数据均值的影响
python 复制代码
arr = np.array([1, 2, 3, 4, 5])
weights = np.array([0.1, 0.2, 0.3, 0.2,0.2])
average_value = np.average(arr, weights=weights)
print(average_value)

6.var,std函数

  • 计算数组元素的方差和标准差
python 复制代码
arr = np.array([1, 2, 3, 4, 5])
print(np.std(arr))
print(np.var(arr)) #总体方差
print(np.var(arr,ddof=1)) #样本方差,总体方差的无偏估计

THE END

相关推荐
狮智先生21 小时前
【学习笔记】利用blender生成的mesh模型(ply格式)并不是水密的
笔记·学习·blender
gis分享者21 小时前
学习threejs,生成复杂3D迷宫游戏
学习·游戏·3d·threejs·cannon·迷宫·cannon-es
deardao21 小时前
【张量等变学习】张量学习与正交,洛伦兹和辛对称
人工智能·学习·自然语言处理
日更嵌入式的打工仔21 小时前
ARM 架构 DSB 与 ISB 基础
笔记
会编程的吕洞宾21 小时前
智能体学习记录一
人工智能·学习
zore_c21 小时前
【C语言】EasyX图形库——实现游戏音效(详解)(要游戏音效的看过来!!!)
c语言·开发语言·经验分享·笔记·游戏
啄缘之间1 天前
10.基于 MARCH C+ 算法的SRAM BIST
经验分享·笔记·学习·verilog
石像鬼₧魂石1 天前
如何配置Fail2Ban的Jail?
linux·学习·ubuntu
hetao17338371 天前
2025-12-12~14 hetao1733837的刷题笔记
数据结构·c++·笔记·算法
Nan_Shu_6141 天前
学习:VueUse (1)
学习