当前位置: 首页 > news >正文

day17 学习笔记

文章目录

  • 前言
  • 一、数组的增删改查
    • 1.resize函数
    • 2.append函数
    • 3.insert函数
    • 4.delete函数
    • 5.argwhere函数
    • 6.unique函数
  • 二、统计函数
    • 1.amax,amin函数
    • 2.ptp函数
    • 3.median函数
    • 4.mean函数
    • 5.average函数
    • 6.var,std函数


前言

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


一、数组的增删改查

1.resize函数

  • 与reshape函数的功能相近,但可以生成任意形状的新数组,会自动根据输入的形状进行元素填充
  • 如果元素数量不够,重复数组元素来填充新的形状;若数量过多,则舍弃多余元素
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时,要求添加的数组与对应维度的形状一致
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)
  • 该函数会自动使用广播机制
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)
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元素的索引
  • 若是多维数组,则返回包含行列索引坐标的数组
arr = np.arange(6).reshape(2,1,3)
print(arr)
print(np.argwhere(arr))
print(np.argwhere(arr<3)) #可以结合使用布尔索引
  • where函数返回一个元组,功能与argwhere相似,使用更加方便
  • 当where函数有三个参数时,它会根据条件来选择元素,第一个参数是条件,第二个参数是满足条件时选择的值,第三个参数是不满足条件时选择的值
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,则返回去重后的数组元素在原数组中出现的次数
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)
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)
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)
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)
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)
  • 相较于平均值,可以减少极差对数据均值的影响
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函数

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

THE END

http://www.dtcms.com/a/99860.html

相关文章:

  • Gateway实战入门(四)、断言-请求头以及请求权重分流等
  • Kafka 多线程开发消费者实例
  • 第四天 文件操作(文本/CSV/JSON) - 异常处理机制 - 练习:日志文件分析器
  • 【Python】基于 qwen_agent 构建 AI 绘画智能助手
  • Linux 文件存储和删除原理
  • Unity编辑器功能及拓展(2) —Gizmos编辑器绘制功能
  • Kafka消息丢失全解析!原因、预防与解决方案
  • 如何查看 SQL Server 的兼容性级别
  • 基于ruoyi快速开发平台搭建----超市仓库管理(修改记录1)
  • 《C++11:通过thread类编写C++多线程程序》
  • 编辑器场景视窗扩展
  • SpringBean模块(一)定义如何创建生命周期
  • 《C++Linux编程进阶:从0实现muduo 》-第6讲.C++死锁问题如何分析调试-原子操作,互斥量,条件变量的封装
  • 稻壳模板下载器(Windows):免费获取WPS稻壳模板的利器
  • Java中优先级队列的实现
  • 蓝桥杯备考------>双指针(滑动窗口)
  • 华为OD机试2025A卷 - 最大值(Java Python JS C++ C )
  • PyTorch 2.6.0没有对应的torch-sparse版本,不要下载pytorch最新版本,否则用不了图神经网络torch_geometric
  • vmware_unbantu刷新IP
  • EtherNet/IP转ProfiNet协议转换网关驱动西门子PLC与流量计的毫秒级压力同步控制
  • 洛谷题单1-P5706 【深基2.例8】再分肥宅水-python-流程图重构
  • MySQL单表查询、多表查询
  • linux实现rsync+sersync实时数据备份
  • Redis-快速入门
  • GPT Actions
  • 【硬件测试】基于FPGA的16QAM+帧同步系统开发与硬件片内测试,包含高斯信道,误码统计,可设置SNR
  • 【Find My全球市场观察:中国制造如何改写游戏规则?】
  • 游戏引擎学习第191天
  • 【Python】工作笔记:返回当月第一天、昨天;上月第一天、当天;全年节假日
  • 淘宝客户端动态化页面搭建