Python - 数据分析三剑客之NumPy

在Python中,NumPyPandasMatplotlib是进行数据分析和数据可视化的三个核心库。它们各自有不同的功能,但经常一起使用来处理和分析数据。

1、NumPy

NumPy(Numerical Python)是一个用于科学计算的库,提供了高性能的多维数组对象以及这些数组的操作工具。它是Pandas和Matplotlib的基础。

核心功能:提供高性能的多维数组对象和数学运算工具

主要功能

  • 创建和操作多维数组

  • 数学函数(如线性代数、傅里叶变换等)

关键特性:

  • 广播机制:不同形状数组间的运算

  • 向量化操作:避免显式循环

  • 线性代数:矩阵运算、特征值分解等

import numpy as np# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])
print(arr)# 创建二维数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_2d)

2、Pandas

核心功能:提供高效的数据结构和数据分析工具

Pandas 是一个强大的数据分析工具库,提供了快速、灵活和表达式丰富的数据结构,旨在使“关系”或“标签”数据的处理既简单又直观。

主要功能

  • 数据清洗和准备

  • 数据分析和操作

  • 数据聚合和分组

  • 时间序列功能

关键特性

  • DataFrame:二维表格型数据结构

  • 时间序列:强大的时间处理功能

  • 数据清洗:处理缺失值、重复值等

  • 数据I/O:支持多种文件格式读写

import pandas as pd
import numpy as np# 创建一个DataFrame
data = {'Name': ['Tom', 'Nick', 'Krish', 'Jack'],
'Age': [20, 21, 19, 18]}
df = pd.DataFrame(data)
print(df)# 读取CSV文件
df = pd.read_csv('data.csv')
print(df.head()) # 显示前几行数据

3、Matplotlib

核心功能:Python 的基础绘图库

Matplotlib 是一个绘图库,用于创建静态、动态和交互式的可视化。它是Python中最常用的绘图库之一。

主要功能

  • 创建各种静态、动态和交互式图表和图形

  • 支持多种图表类型,如线图、散点图、条形图等

  • 高度可定制的外观和布局选项

关键特性

  • 多种图表类型:线图、柱状图、散点图、饼图等

  • 高度可定制:几乎可以调整所有视觉元素

  • 面向对象和MATLAB风格两种API

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd# 使用Pandas创建数据
data = {'Name': ['Tom', 'Nick', 'Krish', 'Jack'], 'Age': [20, 21, 19, 18]}
df = pd.DataFrame(data)# 使用Matplotlib绘制条形图
plt.bar(df['Name'], df['Age'])
plt.xlabel('Name')
plt.ylabel('Age')
plt.title('Age Distribution')
plt.show()

结合使用这三个库可以高效地进行数据处理、分析和可视化。可以使用Pandas来加载和处理数据,使用NumPy进行数据处理(例如数组操作),然后使用Matplotlib来创建图表以展示分析结果

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt# 1. 使用NumPy进行数值计算
data = np.random.randn(100, 4)# 2. 使用Pandas进行数据整理和分析
df = pd.DataFrame(data, columns=['A', 'B', 'C', 'D'])
summary = df.describe()# 3. 使用Matplotlib可视化结果
df.plot(kind='box')
plt.title('数据分布')
plt.show()
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt# 使用Pandas读取数据并处理数据
df = pd.read_csv('data.csv') # 假设有一个CSV文件data.csv包含一些数据
df['NewColumn'] = df['Column1'] + df['Column2'] # 添加新列作为示例操作
df = df[df['NewColumn'] > 100] # 数据过滤示例# 使用Matplotlib进行可视化
plt.figure(figsize=(10, 6)) # 设置图表大小
plt.plot(df['Date'], df['NewColumn'], marker='o') # 绘制时间序列数据,例如日期与某值的趋势图
plt.xlabel('Date') # X轴标签
plt.ylabel('Value') # Y轴标签
plt.title('Value Trend Over Time') # 图表标题
plt.grid(True) # 显示网格线,提高可读性
plt.show() # 显示图表

一、安装NumPy环境

1、使用venv虚拟环境

在Python中使用venv虚拟环境有几个关键的好处,这使得它成为管理项目依赖和环境的首选方法。

1、隔离性

使用venv可以创建一个独立的Python环境,这意味着你可以为不同的项目安装不同版本的库,而不会相互干扰。这对于避免依赖冲突非常有用。

2、版本控制

你可以为每个项目指定特定版本的Python解释器和库。这样,你可以确保项目的稳定性和可重复性,无论在哪个环境中运行代码。

3、简化依赖管理

使用venv,你可以很容易地安装、更新或删除项目所需的库,而不会影响到系统级的Python环境。这大大简化了依赖管理。

4、易于分享:

当你需要将项目分享给其他人或在不同的机器上工作时,venv可以确保所有必要的依赖都被包含在虚拟环境中,使得项目的设置和运行变得简单。

创建虚拟环境
  1. 打开终端或命令提示符。

  2. 导航到你的项目目录。

  3. 运行以下命令来创建一个虚拟环境(例如,名为venv):

# 使用 virtualenv 创建虚拟环
virtualenv .venv# 使用 Python 自带的 venv 模
python -m venv .venv
激活虚拟环境
# 在Windows上:
venv\Scripts\activate# 在macOS和Linux上:
source venv/bin/activate
2、安装 NumPy;Pandas;Matplotlib

首先,确保你的系统上已经安装了Python。你可以通过在终端或命令提示符中输入python --versionpython3 --version来检查Python的版本

使用Python虚拟环境:为了避免系统级的包冲突,建议使用虚拟环境。你可以使用venv(Python 3.3及以上版本内置)或conda(Anaconda/Miniconda)来创建和管理虚拟环境。例如,使用venv

cd .venv
# 切换到虚拟环境下
cd Scripts  
# 激活虚拟环境  
activate  # 安装numpy,pandas,matplotlib;使用其他镜像源,如阿里云、清华源、豆瓣
# 使用阿里云镜像源
pip install numpy pandas matplotlib -i https://mirrors.aliyun.com/pypi/simple/
# 使用清华源
pip install numpy pandas matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
# 使用豆瓣镜像源
pip install numpy pandas matplotlib -i https://pypi.douban.com/simple  # 不使用镜像源(默认官方源),如果你的网络环境可以访问官方pypi源,可以直接使用默认源安装:
pip install numpy pandas matplotlib

3、安装 ipyhton(更好的交互式Python编程环境)
# 使用阿里云镜像源
pip install ipython -i https://mirrors.aliyun.com/pypi/simple/

4、安装 Jupyter Notebook
# 使用阿里云镜像源
pip install jupyter -i https://mirrors.aliyun.com/pypi/simple/

安装之后,输入jupyter notebook(切换到项目目录下,再执行jupyter notebook命令)

jupyter启动默认浏览器

在当前项目目录下右击,选择【New Notebook】

然后写入Python代码,如输入print('hello'),运行(Ctrl + Enter)

Jupyter Notebook有两种键盘输入模式

命令模式:键盘输入运行程序命令;这时单元格框线为蓝色
编辑模式:允许你往单元格中键入代码或文本;这时单元格框线是绿色

Jupyter Notebook常用快捷键

【1】编辑模式(Enter 键启动)

Tab:代码补全或缩进

Shift + Tab:提示

Shift + Enter:允许本单元,选中下一单元

Ctrl + Enter:运行本单元

Alt + Enter:运行本单元,在下面插入一单元

【2】命令模式(按键 Esc 启动)

Shift + Enter:运行本单元,选中下个单元

Ctrl + Enter:运行本单元

Alt + Enter:运行本单元,在其下插入新单元

Y: 单元转入代码状态

M: 单元转入 markdown 状态

A: 在上方插入新单元

B: 在下方插入新单元

DD: 删除选中的单元

二、NumPy使用

在Python中,ndarray(ndarray的全名是NumPy的“N-dimensional array”;N维数组)是NumPy库中一个非常重要的数据结构,用于存储多维数组。它提供了大量的数学和逻辑函数操作,使得数组的创建、修改、索引和计算变得更加方便和高效。

1、创建ndarray

【1】使用np.array()由python list创建

注:

  • numpy默认ndarray的所有元素的类型是相同的
  • 如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int
  • ndarray的常见数据类型:
    • int: int8、uint8、int16、int32、int64
    • float: float16、float32、float64
    • str: 字符串

【2】使用np.routines函数创建

1、np.ones(shape, dtype=None, order='C')

2、np.zeros(shape, dtype=float, order='C')

3、np.full(shape, fill_value, dtype=None, order='C')

4、np.eye(N, M=None, k=0, dtype=float)

5、np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

6、np.arange([start, ]stop, [step, ]dtype=None)

7、np.random.randint(low, high=None, size=None, dtype='l')

8、np,random.randn(d0, d1, ..., dn)

9、np.random.normal(loc=0.0, scale=1.0, size=None)

10、np.random.random(size=None)

11、np.random.random(d0, d1, ..., dn)

2、ndarray属性

1、ndim:维度

2、shape:形状

3、size:总长度

4、dtype:元素类型

3、ndarray基本操作

1、索引

根据索引修改数据

2、切片

反转;两个::进行切片

左右反转

上下反转

颜色反转

3、变形

4、级联

级联基本要求:垂直级联,列数一定要相同;水平级联,行数一定要相同

垂直级联:要求列数一致

水平级联:要求行数一致

np.hstack和np.vstack

5、切分

6、副本

运行效率

4、ndarray聚合操作

1、求和np.sum

2、最大/最小值:np.max/np.min

3、其它聚合操作

  • np.min 最小值
  • np.max 最大值
  • np.mean 平均值
  • np.average 平均值
  • np.median 中位数
  • np.percentile 百分位数
  • np.argmin 最小值对应的下标
  • np.argmax 最大值对应的下标
  • np.std 标准差
  • np.var 方差
  • np.power 次方,求幂
  • np.argwhere 按条件查找

4、操作文件

使用panda打开height.csv文件获取其中数据

5、ndarray矩阵操作

1、基本矩阵操作

【1】算术运算符:加减乘除

【2】矩阵积np.dot()

2、广播机制

6、ndarray排序

1、快速排序

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

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

相关文章

百度文库智能PPT月访问量超3400万,用户规模翻倍增长

6月27日,极光旗下月狐数据发布《2025年智能PPT行业市场研究报告》。报告显示,智能PPT市场整体增速年同比超50%,市场玩家成倍激增。其中,百度文库智能PPT月访问量超3400万、位列全球第一,市场份额在中国位于断崖式领先。…

远眺科技工业园区数字孪生方案,如何实现智能管理升级?

面对工业园区日益复杂的能耗管控、环境监测、安全运维需求,传统管理模式已经难以为继。而数字孪生技术,正好成为解决上述问题的关键“解药”。本文将以远眺工业园区数字孪生项目为例,为您剖析数字孪生技术如何解决数据孤岛、响应滞后等痛点。…

成都芯谷金融中心文化科技园:打造区域科技活力

在成渝地区双城经济圈建设加速推进的背景下,成都芯谷金融中心文化科技园正以"科技文化金融"的融合创新模式,重塑区域产业生态,成为驱动城市高质量发展的活力源泉。这座总建筑面积达45万平方米的产城综合体,不仅承载着双…

Claude Code 全面指南:从安装到高效开发的实用教程

在 AI 助手逐渐成为开发者标配的今天,Claude Code 作为 Anthropic 推出的一款智能编程工具,凭借其强大的自然语言交互和自动化能力,正迅速改变着软件开发的方式。本文将详细介绍 Claude Code 的功能、安装配置、使用方法及安全与成本管理&…

在Flutter中生成App Bundle并上架Google Play

Ran tool 要在Flutter中生成App Bundle并上架Google Play,请按照以下步骤操作: 1. 准备签名密钥 首先需要创建一个密钥库用于签名: keytool -genkey -v -keystore upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias …

kubernetes pod调度基础

目录 Replication Controller 和 ReplicaSet 标签与标签选择器 无状态应用管理Deployment 有状态应用管理StatefulSet 守护进程集DaemonSet Replication Controller 和 ReplicaSet RC用来确保Pod副本数达到期望值,这样可以确保一个或多七个同类Pod总是可用的 如果存在的P…

Vue 3 响应式核心源码详解(基于 @vue/reactivity)

🧬 Vue 3 响应式核心源码详解(基于 vue/reactivity) ⚙️ 整理不易,记得点赞、收藏、关注,揭开 Vue 响应式的神秘面纱! 🧭 一、源码结构总览(relevant files) Vue 的响应…

编写shell脚本扫描工具,扫描服务器开放了哪些端口(再尝试用python编写一个)

先将需要扫描的服务器的端口显示出来,然后再显示哪些ip地址对应的服务器的哪些端口已开放或未开放 下面这个shell脚本可以同时扫描多个ip对应的多个服务器的多个端口是否开放: 以下是运行结果: nc 和 nmap 扫描别人的机器开放了哪些端口 ne…

java JNDI高版本绕过 工具介绍 自动化bypass

JNDI高版本rce失效问题 原因: 主要还是协议控制高版本的一般都会关闭如rmi,ldap等协议远程加载的类 RMI限制: com.sun.jndi.rmi.object.trustURLCodebase、com.sun.jndi.cosnaming.object.trustURLCodebase的默认值变为false,即…

JavaWeb笔记02

三、数据库设计 1_简介 1.数据库设计设计什么? 有哪些表 表里有哪些字段 表和表之间是什么关系 2.表关系有哪几种? 一对一 一对多(多对一) 多对多 2_多表关系实现 表关系之一对多 一对多 (多对一): 如:部门表和员…

Junit_注解_枚举

文章目录 一:Junit单元测试测试分类:Junit的使用Before_After 二:注解什么是注解文档相关的注解IDEA中的javadoc使用:JDK内置的3个注解自定义注解 元注解RetentionTargetRepeatableDocumented(用的很少)Inh…

将N8N配置为服务【ubuntu】

docker模式不在此讨论。这里讨论的是node安装为n8n后,如何安装为服务: 安装NODE(略) 安装N8N 一个命令解决: npm install n8n -g 安装服务 vi /etc/systemd/system/n8n.service内容如下 [Unit] Descriptionn8…

Java后端调用外部接口标准流程详解

在Java后端开发中,调用外部HTTP接口(如第三方平台API、云服务、微服务等)是非常常见的需求。实现这个功能通常遵循一套标准的流程: 1. 准备DTO类(数据传输对象) 作用: DTO(Data Tra…

星火燎原 数智新生 —— 《GB/T 45341—2025》 × AI大模型 × 全域PaaS创新,领码SPARK打造行业数字化转型新范式

【摘要】 数字中国新征程,标准引航数智化。面对企业数字蝶变的关键关口,《GB/T 45341—2025 数字化转型管理 参考架构》引领行业规范发展。爱分析最新数据显示,中国iPaaS市场规模持续高增长,印证PaaS已成为企业数字化基石。 AI大…

25-7-1 论文学习(1)- Fractal Generative Models 何恺明大佬的论文

分形生成模型 Tianhong Li1 Qinyi Sun1 Lijie Fan2 Kaiming He1 摘要 模块化是计算机科学的基石,它将复杂函数抽象为原子构建块。在本文中,我们通过将生成模型抽象为原子生成模块,引入了新的模块化层次。类似于数学中的分形,我…

如何读取运行jar中引用jar中的文件

1.问题发现 项目中有个common包资源文件,然后springboot项目引用了common,那么我们要怎么读取这个资源了。这里需要考虑三个场景,idea运行时、common jar独立运行时、springboot引用common后运行时。 2.问题解决 2.1.idea运行时 Protection…

【学习方法】框架质疑学习法:破解专业学习的“知识厚度”困境

今天博主给大家分享一个,我自己发明了一个比较高效的学习方法,名叫“框架质疑学习法” 本文提出的框架质疑学习法(Framework Questioning Learning Method)为本文作者,也就是我,董翔首次提出。 在软件专业的学习中&a…

spring-ai 1.0.0 学习(十七)——MCP Client

之前学过了工具调用(spring-ai 1.0.0 学习(十二)——工具调用_springai 1.0 如何判断调用哪一个tool工具-CSDN博客),今天来看一下MCP MCP是什么 MCP全称是模型上下文协议,有点绕,通俗点理解&a…

Git 运行.sh文件

1.在项目文件中右击 Open Git Bash here 显示(base)环境 2.激活conda环境 3.复制.sh文件的相对路径 4.将路径复制到git终端 先输入sh和空格,然后右击后选paste,不要直接ctrl v 5.开始运行

MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别?

MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别? 主要解答详细解答1. **聚簇索引(Clustered Index)**2. **非聚簇索引(Non-Clustered Index / Secondary Index)**3. **对比总结**4. **流程图(查询过…