Numpy/Pandas常用函数

news2024/11/15 11:44:26

👂 不露声色 - Jam - 单曲 - 网易云音乐

目录

🌼前言 

👊一,Python列表函数

👊二,Numpy常用函数

1,生成数组

2,描述数组属性

3,常用统计函数

4,矩阵运算

5,其他常见操作

👊三,Pandas常用函数

🌼补充 


🌼前言 

Python作为一款面向对象,跨平台并开源的计算机语言,是机器学习实践的首选工具

入门Python机器学习,应从了解并掌握Python的Numpy,Pandas,Matplotlib开始

学习Python和完成机器学习的有效途径是:以特定的机器学习应用场景和数据为出发点,沿着由浅入深的数据分析脉络,逐个解决数据分析实际问题

👊一,Python列表函数

先看代码

L = []
L.append(1)
print(L)
L.extend((666,'pretty','xs'))
print(L)
L.insert(2,'儿砸')
print(L)
print('\n')

L.remove('儿砸')
print(L)
print("删除并返回列表最后一个元素\n",L.pop())
print(L)
print(L[1])
print('左闭右开\n',L[0:2])

L2 = ['0.0',233]
print(L + L2,'\n')
print('\n')

print(L2*2) #列表的复制
L3 = [1,2,3,5,3]
L4 = [1,2,3]
print(L3 < L4)
print('\n')

print(L3.count(3)) #3出现2次
print(L3.index(3)) #3首次出现的索引
L3.reverse()
print(L3) #列表翻转
L3.sort() #列表元素排序
print(L3)
print('\n')

print(L)
L = L3 #列表复制
print(L)
print('\n')

print(L3)
L = L3[1:3] #切片复制
print(L)

再看知识点

1,

L = []
L.append(1)
print(L)
L.extend((666,'pretty','xs'))
print(L)
L.insert(2,'儿砸')
print(L)
[1]
[1, 666, 'pretty', 'xs']
[1, 666, '儿砸', 'pretty', 'xs']

2,

L.remove('儿砸')
print(L)
print("删除并返回列表最后一个元素",L.pop())
print(L)
print(L[1])
print('左闭右开',L[0:2])
[1, 666, 'pretty', 'xs']
删除并返回列表最后一个元素 xs
[1, 666, 'pretty']
666
左闭右开 [1, 666]

3,

L2 = ['0.0',233]
print(L + L2,'\n')
print('\n')

print(L2*2) #列表的复制
L3 = [1,2,3,5,3]
L4 = [1,2,3]
print(L3 < L4)
[1, 666, 'pretty', '0.0', 233]
['0.0', 233, '0.0', 233]
False

4, 

print(L3.count(3)) #3出现2次
print(L3.index(3)) #3首次出现的索引
L3.reverse()
print(L3) #列表翻转
L3.sort() #列表元素排序
print(L3)
2
2
[3, 5, 3, 2, 1]
[1, 2, 3, 3, 5]

5,

print(L)
L = L3 #列表复制
print(L)
print('\n')

print(L3)
L = L3[1:3] #切片复制
print(L)
[1, 666, 'pretty']
[1, 2, 3, 3, 5]


[1, 2, 3, 3, 5]
[2, 3]

👊二,Numpy常用函数

1,Numpy的数据组织方式是数组(Array)

-----------------------------------------------------------

2,jupyter notebook可以直接导入numpy等库,但是vs code需要安装这个包,否则会报错

error: no module named numpy

具体步骤 

1,Ctrl+ Shift+` 生成新终端

2,输入pip install numpy(回车)

3,等待安装完毕

pandas, matplotlib等包的安装同上 

------------------------------------------------------------ 

1,生成数组

np.arange(n)    生成从0到n-1的,步长为1的一维数组

np.random.randn(n)    随机生成n个服从标准的正太分布数组

import numpy as np
a = np.arange(5)
b = np.random.randn(5)
print(a)
print(b)
[0 1 2 3 4]
[-0.42588491 -0.37133298  0.62970363  0.74290308 -0.28438498]

2,描述数组属性

.ndim    返回数组维度

.shape    返回数组各维度长度

.dtype    返回数组元素数据类型

import numpy as np
arr = np.array([[1,2,3,5],[2,3,4,5]])
print(arr.ndim) #二维数组维度是2
print(arr.shape) #二维长度2,一维长度4
print(arr.dtype) #返回数组数据类型
2
(2, 4)
int32

3,常用统计函数

np.sum()    求和

np.mean()    平均值

np.max()    最大值

np.min()    最小值

np.cumsum()    累积求和(前缀和)

np.sqrt()    平方根

import numpy as np
arr = np.array([[1,2,3,5],[2,3,4,5]])
print(np.sum(arr))
print(np.mean(arr))
print(np.max(arr))
print(np.min(arr))

print(np.cumsum(arr))
print(np.sqrt(arr))
25
3.125
5
1
[ 1  3  6 11 13 16 20 25]
[[1.         1.41421356 1.73205081 2.23606798]
 [1.41421356 1.73205081 2.         2.23606798]]

4,矩阵运算

np.dot()    矩阵乘法(点乘)

.T    矩阵转置

np.linalg.inv()    矩阵求逆

np.linalg.det()    计算行列式

np.linalg.eig()    求特征值和特征向量

np.linalg.svd()    奇异值分解

import numpy as np
arr1 = np.array([2,3])
arr2 = np.array([1,2])      
print(np.dot(arr1, arr2)) #矩阵乘法

arr = np.arange(6).reshape(2,3) #元素0-5的2行3列矩阵
print(arr)
print(arr.T) #矩阵转置

print()
arr = np.array([[1,2],[3,4]])
print(arr)
print(np.linalg.inv(arr)) #矩阵求逆
print(np.linalg.det(arr)) #计算行列式

print()
arr = np.diag([1,2,3])
print(np.linalg.eig(arr)) #特征值和特征向量
print()
print(np.linalg.svd(arr)) #奇异值分解
8
[[0 1 2]
 [3 4 5]]
[[0 3]
 [1 4]
 [2 5]]

[[1 2]
 [3 4]]
[[-2.   1. ]
 [ 1.5 -0.5]]
-2.0000000000000004

(array([1., 2., 3.]), array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]]))

(array([[0., 0., 1.],
       [0., 1., 0.],
       [1., 0., 0.]]), array([3., 2., 1.]), array([[0., 0., 1.],
       [0., 1., 0.],
       [1., 0., 0.]]))

5,其他常见操作

np.sort(数组名)    数组各元素排序

np.rint()    各元素四舍五入取整

np.sign()    各元素取符号值

np.where(条件, x, y)    满足条件返回x,不满足返回y

import numpy as np
arr = np.array([4,5,3,2,6]) #排序
print(np.sort(arr)) #不改变原值, 需要直接打印或赋值

arr = np.array([3.2, 1.4, 3.7, 6.5]) #四舍五入
print(np.rint(arr)) #不会改变原值

print()
arr = np.array([-1.8, 1.4, 2, -3])
print(arr) 
print(np.sign(arr)) #取符号值
print()

arr = np.array([1,2,3,4])
print(np.where(arr < 4, arr*2, arr-5)) 
#满足返回第一个, 不满足返回第二个
[2 3 4 5 6]
[3. 1. 4. 6.]

[-1.8  1.4  2.  -3. ]
[-1.  1.  1. -1.]

[ 2  4  6 -1]

👊三,Pandas常用函数

Pandas的重要数据组织方式是数据框(DataFrame)

1,文件读取

pd.read_excel(文件名)

2,描述数据框属性

数据框名.values    (数据框的)值

.ndim       维度

.shape     各维长度

.columns  列名

.sum()      各列元素求和

.mean()    各列元素求均值

.max()      各列元素求最大值

.min()       各列元素最小值

pd.crosstab()    交叉表频数统计

import pandas as pd
df = pd.read_excel('北京市空气质量数据.xlsx')
from pandas import Series,DataFrame
print('值:\n{0}'.format(df.values))
print('维度:\n{0}'.format(df.ndim))
print('各维长度:\n{0}'.format(df.shape))
print('列名:\n{0}'.format(df.columns))
print('各列求和:\n{0}'.format(df.sum()))
print('各列均值:\n{0}'.format(df.mean()))
print('各列最大值:\n{0}'.format(df.max()))
print('各列最小值:\n{0}'.format(df.min()))
print('数据框:\n{0}'.format(df))
print('\n交叉表频数统计:\n{0}'.format(pd.crosstab(df.质量等级,df.AQI)))

输出

 

 

3,空值操作

pd.isnull(数据框名)     判断数据框内元素是否为空值

pd.notnull(数据框名)   不为空值

数据框名.dropna()       删除含有空数据的全部行

4,其他常见操作

数据框名.groupby()     数据框按指定列分组计算

.sort_values()              指定列的数值大小排序

.apply()                        对列特定运算

.drop_duplicates()       去除指定列下面的重复行

.replace()                     数值替换

pd.merge()                   数据框合并

pd.cut()                        将一组数据分隔成离散的区间

pd.get_dummies()        分类变量转化为0/1的虚拟变量

 

🌼补充 

1)Pandas的for循环时实现程序循环控制的常见途径,for循环基本格式如下:

for  变量  in  序列:

        循环体

变量依次从序列中取值,控制循环次数并多次执行循环体的操作

2)用户自定义函数:实现某种特定计算功能的程序段。具有一定通用性,会被主程序经常调用。

需首先以独立程序段的形式,定义用户自定义函数,然后才可以在主程序中调用,基本格式如下:

def  函数名(参数):

        函数体

其中,def为用户自定义的关键字;函数名是函数调用的依据;参数是须向函数体提供的数据参数;函数体用于定义函数的具体处理流程。

3)匿名函数:一种简单,短小的用户自定义函数,一般课直接嵌在主程序中。

基本格式如下:

lambda  参数:   函数表达式

其中,lambda为匿名函数关键字

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/393143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Soul 云原生网关最佳实践

作者&#xff1a;Soul 运维 公司介绍 Soul 是基于兴趣图谱和游戏化玩法的产品设计&#xff0c;属于新一代年轻人的虚拟社交网络。成立于2016年&#xff0c;Soul 致力于打造一个“年轻人的社交元宇宙”&#xff0c;最终愿景是“让天下没有孤独的人”。在 Soul&#xff0c;用户…

springboot复习(黑马)(持续更新)

学习目标基于SpringBoot框架的程序开发步骤熟练使用SpringBoot配置信息修改服务器配置基于SpringBoot的完成SSM整合项目开发一、SpringBoot简介1. 入门案例问题导入SpringMVC的HelloWord程序大家还记得吗&#xff1f;SpringBoot是由Pivotal团队提供的全新框架&#xff0c;其设计…

为什么低代码最近又火了起来?是钉钉的原因吗?

为什么低代码最近又火了起来&#xff1f;是钉钉的原因吗&#xff1f; 钉钉的入局固然推动了人们对于低代码的讨论&#xff0c;但低代码由来已久&#xff0c;其火爆其实是大势所趋。 那么本篇文章将来解读一下&#xff1a;为什么低代码最近又火了&#xff1f;是资本的推动还是…

佩戴舒适的蓝牙耳机有哪些?佩戴舒适的蓝牙耳机推荐

音乐对许多人而言&#xff0c;都是一种抚慰生命的力量&#xff0c;特别是在上下班的时候&#xff0c;在熙熙攘攘的人流中&#xff0c;戴着耳机听一首动听的曲子&#xff0c;无疑会让人心情变得更加舒畅&#xff0c;要想获得出色的音乐体验&#xff0c;没有一副出色的耳机可不行…

动态内存基础(三)

动态内存的相关问题 ● sizeof 不会返回动态分配的内存大小 #include<iostream> #include<new> #include<memory> #include<vector> int main(int argc, char *argv[]) {int* ptr new int(3);std::cout << sizeof(ptr) << std::endl; //…

阶段式/瀑布完整软件研发流程

软件产品开发流程&#xff1a;下图所示的是一个软件产品开发大体上所需要经历的全部流程&#xff1a;编辑1、启动在项目启动阶段&#xff0c;主要确定项目的目标及其可行性。我们需要对项目的背景、干系人、解决的问题等等进行了解。并编制项目章程和组建项目团队&#xff0c;包…

STM32实战项目-状态机函数应用

前言&#xff1a; 本章主要介绍一下&#xff0c;状态机在工程中的应用&#xff0c;下面我会通过这种方式点亮LED灯&#xff0c;来演示他的妙用。 目录 1、状态机应用 1.1流水灯函数 1.1.1led.h 1.1.2led.c 1.2状态机函数 1.2.1定义举常量 1.2.2结构体封装 1、状态机应…

设计模式-01

1&#xff0c;设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中&#xff0c;而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫亚历山大&#xff08;Christopher Alexand…

VUE3使用JSON编辑器

1、先看看效果图&#xff0c;可以自行选择展示效果 2、这是我在vue3项目中使用的JSON编辑器&#xff0c;首先引入第三方插件 npm install json-editor-vue3yarn add json-editor-vue33、引入到项目中 // 导入模块 import JsonEditorVue from json-editor-vue3// 注册组件 …

【pytorch onnx】Pytorch导出ONNX及模型可视化教程

文章目录1 背景介绍2 实验环境3 torch.onnx.export函数简介4 单输入网络导出ONNX模型代码实操5 多输入网络导出ONNX模型代码实操6 ONNX模型可视化7 ir_version和opset_version修改8 致谢原文来自于地平线开发者社区&#xff0c;未来会持续发布深度学习、板端部署的相关优质文章…

RocketMQ5.1控制台的安装与启动

RocketMQ控制台的安装与启动下载修改配置开放端口号重启防火墙添加依赖编译 rocketmq-dashboard运行 rocketmq-dashboard本地访问rocketmq无法发送消息失败问题。connect to &#xff1c;公网ip:10911&#xff1e; failed下载 下载地址 修改配置 修改其src/main/resources中…

【操作系统原理实验】银行家算法模拟实现

选择一种高级语言如C/C等&#xff0c;编写一个银行家算法的模拟实现程序。1) 设计相关数据结构&#xff1b;2) 实现系统资源状态查看、资源请求的输入等模块&#xff1b;3) 实现资源的预分配及确认或回滚程序&#xff1b;4) 实现系统状态安全检查程序&#xff1b;5) 组装各模块…

TCP模拟HTTP请求

HTTP的特性HTTP是构建于TCP/IP协议之上&#xff0c;是应用层协议&#xff0c;默认端口号80HTTP协议是无连接无状态的HTTP报文请求报文HTTP协议是以ASCⅡ码传输&#xff0c;建立在TCP/IP协议之上的应用层规范。HTTP请求报文由请求行&#xff08;request line&#xff09;、请求头…

Flutter 自定义今日头条版本的组件,及底部按钮切换静态样式

这里写目录标题1. 左右滑动实现标题切换&#xff0c;点击标题也可实现切换&#xff1b;2. 自定义KeepAliveWrapper 缓存页面&#xff1b;2.2 使用3. 底部导航切换&#xff1b;4. 自定义中间大导航&#xff1b;5.AppBar自定义顶部按钮图标、颜色6. Tabbar TabBarView实现类似头条…

iOS开发之UIStackView基本运用

UIStackView UIStackView是基于自动布局AutoLayout&#xff0c;创建可以动态适应设备方向、屏幕尺寸和可用空间的任何变化的用户界面。UIStackView管理其ArrangedSubview属性中所有视图的布局。这些视图根据它们在数组中的顺序沿堆栈视图的轴排列。由axis, distribution, align…

java医院云HIS系统:融合B/S版电子病历系统 能与公卫、PACS等各类外部系统融合

医院HIS系统源码 云HIS系统源码&#xff1a;SaaS运维平台完整文档 有源码&#xff0c;有演示 java基层医院云his系统 融合B/S版电子病历系统&#xff0c;支持电子病历4级 拥有自主知识产权。 看演示及源码可私信我哦&#xff01; 一、系统概述 一款满足二甲医院、基层医疗机构…

九、会话技术CookieSession

会话技术 1&#xff0c;会话跟踪技术的概述 对于会话跟踪这四个词&#xff0c;我们需要拆开来进行解释&#xff0c;首先要理解什么是会话&#xff0c;然后再去理解什么是会话跟踪: 会话:用户打开浏览器&#xff0c;访问web服务器的资源&#xff0c;会话建立&#xff0c;直到有…

3D目标检测(二)—— 直接处理点云的3D目标检测网络VoteNet、H3DNet

前言上次介绍了基于Point-Based方法处理点云的模块&#xff0c;3D目标检测&#xff08;一&#xff09;—— 基于Point-Based方法的PointNet点云处理系列,其中相关的模块则是构成本次要介绍的&#xff0c;直接在点云的基础上进行3D目标检测网络的基础。VoteNet对于直接在点云上预…

科目一《综合素质》

目录综合素质重点题型分布注意事项章节分解第一章 职业理念第一节 教育观1. 教育观&#xff08;基本内涵&#xff09;一字不差背过第二节 学生观2. 学生观 一字不差背过第三节 教师观3. 教师观 一字不差背过第二章 教育法律法规第一节 教师的权利与义务第二节 学生的权利及其保…

QT基础入门【Demo篇】QString的相关操作

&#x1f4a2;&#x1f4a2;目录总览&#x1f4a2;&#x1f4a2;&#xff1a;QT基础入门目录总览 QString支持的操作符号有&#xff1a; 用于字符串之间比较&#xff1a;"!" "<" "<" "" ">" 用于字符串之间传递&a…