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

相关推荐
云上艺旅1 小时前
K8S学习之基础六十四:helm常用命令
学习·云原生·容器·kubernetes
时光追逐者1 小时前
学习如何设计大规模系统,为系统设计面试做准备!
学习·面试·职场和发展·系统设计
淬渊阁2 小时前
汇编学习之《指针寄存器&大小端学习》
汇编·学习
淬渊阁2 小时前
汇编学习之《段寄存器》
汇编·学习
虾球xz2 小时前
游戏引擎学习第193天
c++·学习·游戏引擎
学习是种信仰啊3 小时前
QT文件操作(QT实操学习3)
开发语言·qt·学习
Allen_LVyingbo3 小时前
文章配图新纪元:OpenAI新推出的GPT-4o原生图像生成功能启示
人工智能·学习·架构·数据分析·健康医疗
傍晚冰川4 小时前
【STM32】最后一刷-江科大Flash闪存-学习笔记
笔记·科技·stm32·单片机·嵌入式硬件·学习·实时音视频
吴梓穆4 小时前
UE5学习笔记 FPS游戏制作33 游戏保存
笔记·学习·ue5
淬渊阁4 小时前
汇编学习之《数据传输指令》
汇编·学习