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

流行的Python库numpy及Pandas简要介绍

numpy.ndarray 是NumPy库中的主要数据结构,它是一个多维数组,用于存储和操作数值数据。NumPy是Python中用于数值计算的强大库,numpy.ndarray 是它的核心数据类型,提供了高效的数值运算和广泛的数学函数。

以下是 numpy.ndarray 的一些重要特点和功能:

  1. 多维数组numpy.ndarray 可以是一维、二维或多维的数组,这使得它非常适合处理各种复杂的数据。

  2. 数据类型numpy.ndarray 可以包含不同数据类型的元素,如整数、浮点数、布尔值等。每个数组都有一个固定的数据类型,可通过 dtype 属性获得。

  3. 广播:NumPy支持广播,这意味着可以对不同形状的数组执行元素级操作,而不需要显式循环。

  4. 矢量化操作:NumPy提供了各种数学、逻辑和统计函数,这些函数能够高效地应用于 numpy.ndarray 中的元素,而无需编写循环。

  5. 切片和索引:可以使用切片和索引操作从 numpy.ndarray 中选择和操作数据的子集。

  6. 数学运算:NumPy支持各种数学运算,包括加法、减法、乘法、除法、矩阵运算等。

  7. 随机数生成:NumPy包括随机数生成函数,用于生成随机数或随机数组。

  8. 数据统计:NumPy提供了各种统计函数,用于计算平均值、方差、标准差、最大值、最小值等。

  9. 线性代数:NumPy包括线性代数函数,用于矩阵操作、求解线性方程组等。

  10. 文件IO:可以使用NumPy读取和写入数据到磁盘,支持多种文件格式。

下面是一个简单的示例,演示如何创建和操作 numpy.ndarray

import numpy as np# 创建一个一维数组
arr1 = np.array([1, 2, 3, 4, 5])# 创建一个二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])# 访问数组元素
print(arr1[0])        # 输出:1
print(arr2[1, 2])     # 输出:6# 数学运算
result = arr1 + 10
print(result)         # 输出:[11 12 13 14 15]# 切片
sub_array = arr1[1:4]
print(sub_array)      # 输出:[2 3 4]# 统计运算
mean_value = np.mean(arr1)
print(mean_value)     # 输出:3.0
import numpy as np# 创建一个全零数组
zeros_array = np.zeros((3, 4))# 创建一个全一数组
ones_array = np.ones((2, 2))# 创建一个等差数列
linspace_array = np.linspace(0, 1, 5)  # 生成 [0. 0.25 0.5 0.75 1. ]# 创建一个随机数组
random_array = np.random.rand(3, 3)  # 生成一个3x3的随机数组
import numpy as nparr = np.arange(12)  # 创建一个包含0到11的一维数组# 将一维数组重塑为二维数组
reshaped_arr = arr.reshape(3, 4)# 改变数组的形状,保持原数组不变
flattened_arr = arr.flatten()
import numpy as np# 生成服从正态分布的随机数
random_numbers = np.random.normal(loc=0, scale=1, size=(3, 3))# 随机打乱数组的顺序
arr = np.array([1, 2, 3, 4, 5])
np.random.shuffle(arr)
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 使用条件表达式创建新数组
new_array = np.where(arr > 2, arr, 0)  # 大于2的元素保留,小于等于2的变为0
import numpy as np# 创建一个示例数组
data = np.array([[1, 2, 3], [4, 5, 6]])# 将数据写入文本文件(以逗号分隔)
np.savetxt('data.txt', data, delimiter=',')# 将数据写入二进制文件
np.save('data.npy', data)# 将数据写入压缩的二进制文件
np.savez('data.npz', arr=data, arr2=data*2)
import numpy as np# 从文本文件读取数据
loaded_data = np.loadtxt('data.txt', delimiter=',')# 从二进制文件读取数据
loaded_data_binary = np.load('data.npy')# 从压缩的二进制文件读取数据
loaded_data_compressed = np.load('data.npz')
data_array = loaded_data_compressed['arr']
data_array2 = loaded_data_compressed['arr2']

 

import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])# 沿行方向堆叠两个数组
stacked_array = np.vstack((arr1, arr2))# 沿列方向拼接两个数组
concatenated_array = np.concatenate((arr1, arr2))

Pandas(Python Data Analysis Library)是一个流行的Python库,用于数据处理和分析。它提供了高性能、易用的数据结构和数据分析工具,使得在Python中进行数据清洗、转换、分析和可视化变得更加容易。以下是Pandas的一些主要特点和功能:

  1. 数据结构:Pandas引入了两种主要的数据结构,DataFrameSeries

    • DataFrame 是一个二维表格数据结构,类似于电子表格或SQL表,可以容纳多种数据类型的列。每列可以有不同的数据类型。
    • Series 是一个一维标记数组,类似于带有标签的NumPy数组。
  2. 数据读取:Pandas可以轻松读取各种数据源,包括CSV、Excel、SQL数据库、JSON、HTML、以及Web API等。

  3. 数据清洗和处理:Pandas提供了丰富的数据操作功能,包括缺失值处理、数据合并、重塑、过滤、排序、分组和聚合等。

  4. 数据分析:Pandas支持各种数据分析任务,包括统计描述、数据可视化、时间序列分析、数据透视表等。

  5. 快速索引:Pandas的 DataFrameSeries 可以通过标签或位置进行快速的数据检索和索引。

  6. 灵活的数据可视化:Pandas结合了Matplotlib和Seaborn等可视化库,使得数据可视化变得容易。

  7. 数据导出:可以将清洗和分析后的数据导出到各种文件格式,包括CSV、Excel、SQL数据库等。

  8. 时间序列数据:Pandas对于处理时间序列数据非常强大,可以进行日期和时间的解析、滚动窗口计算等。

  9. 高性能:Pandas被设计为高性能数据处理工具,可以处理大型数据集。

  10. 广泛的社区支持:由于其流行和广泛使用,Pandas拥有庞大的社区支持和文档资源。

以下是一个简单的示例,演示了如何使用Pandas创建和操作数据:

 

import pandas as pd# 创建一个DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['New York', 'San Francisco', 'Los Angeles']}
df = pd.DataFrame(data)# 打印DataFrame的前几行
print(df.head())# 进行数据过滤
filtered_df = df[df['Age'] > 28]# 进行数据分组和聚合
grouped_df = df.groupby('City')['Age'].mean()# 保存DataFrame到CSV文件
df.to_csv('sample_data.csv', index=False)
import pandas as pd# 从CSV文件读取数据
df = pd.read_csv('data.csv')# 从Excel文件读取数据
df = pd.read_excel('data.xlsx')# 从SQL数据库读取数据
import sqlite3
conn = sqlite3.connect('database.db')
query = "SELECT * FROM table_name"
df = pd.read_sql_query(query, conn)
# 选择DataFrame中的一列
column = df['Column_Name']# 使用条件选择行
filtered_df = df[df['Age'] > 25]# 使用iloc按位置选择数据
selected_data = df.iloc[0:5, 1:3]
# 处理缺失值
df.dropna()  # 删除包含缺失值的行
df.fillna(value)  # 填充缺失值为指定值
# 数据排序
sorted_df = df.sort_values(by='Column_Name', ascending=False)# 数据分组和聚合
grouped = df.groupby('Category')
mean_age = grouped['Age'].mean()
# 将DataFrame保存为CSV文件
df.to_csv('output_data.csv', index=False)# 将DataFrame保存为Excel文件
df.to_excel('output_data.xlsx', index=False)

相关文章:

流行的Python库numpy及Pandas简要介绍

numpy.ndarray 是NumPy库中的主要数据结构,它是一个多维数组,用于存储和操作数值数据。NumPy是Python中用于数值计算的强大库,numpy.ndarray 是它的核心数据类型,提供了高效的数值运算和广泛的数学函数。 以下是 numpy.ndarray 的…...

【二、安装centOS】

下载 地址:https://mirrors.aliyun.com/centos/ 地址 1、https://mirrors.aliyun.com/centos/7.9.2009/ 2、https://mirrors.aliyun.com/centos/7.9.2009/isos/ 3、https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/ 选哪一个 可以选择第一个&#xff0…...

【动手学深度学习-Pytorch版】序列到序列的学习(包含NLP常用的Mask技巧)

序言 这一节是对于“编码器-解码器”模型的实际应用,编码器和解码器架构可以使用长度可变的序列作为输入,并将其转换为固定形状的隐状态(编码器实现)。本小节将使用“fra-eng”数据集(这也是《动手学习深度学习-Pytor…...

AUTOSAR 面试知识回顾

如果答不上来,就讲当时做了什么 1. Ethernet基础: 硬件接口: ECU到PHY: data 是MII总线, 寄存器控制是SMI总线【MDCMDIO两根线, half duplex】PHY输出(100BASE-T1): MDI总线,2 wire 【T1: twisted 1 pair …...

华为NFC设置教程(门禁卡/公交卡/校园卡等)

今天把华为NFC设置教程分享给大家 出门带门禁卡、校园卡、银行卡、身份证……东西又多,携带又麻烦,还容易搞丢,有没有一种方法可以把它们都装下?有!只要一部手机,出门不带卡包,各种证件&#x…...

基于微信小程序的音乐播放器设计与实现(源码+lw+部署文档+讲解等)

前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻…...

如何取消显示Notepad++每行显示的CRLF符号

新电脑中重新安装了Nodepad,打开记事本后发现出现了许多黑底的CR|LF标记,特别碍眼。 如何取消呢? 视图 -> 显示符号 -> 取消勾选 显示行尾符操作步骤 预期效果...

数据结构与算法之时间复杂度和空间复杂度(C语言版)

1. 时间复杂度 1.1 概念 简而言之,算法中的基本操作的执行次数,叫做算法的时间复杂度。也就是说,我这个程序执行了多少次,时间复杂度就是多少。 比如下面这段代码的执行次数: void Func1(int N) {int count 0;for…...

TLS/SSL(十) session缓存、ticket 票据、TLS 1.3的0-RTT

一 TLS优化手段 TLS 为了提升握手速度而提出优化手段,主要是减少TLS握手中RTT消耗的时间关于session cache和session ticket,nginx关于ssl握手的地方都有影子 [指令] https面经 ① session 缓存 resume: 重用,复用 案例: 第二次访问www.baidu.com 说明&#x…...

C++设计模式_06_Decorator 装饰模式

本篇将会介绍Decorator 装饰模式,它是属于一个新的类别,按照C设计模式_03_模板方法Template Method中介绍的划分为“单一职责”模式。 “单一职责”模式讲的是在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随…...

MySQL 8.0数据库主从搭建和问题处理

错误处理: 在从库通过start slave启动主从复制时出现报错 Last_IO_Error: error connecting to master slaveuser10.115.30.212:3306 - retry-time: 60 retries: 1 message: Authentication plugin caching_sha2_password reported error: Authentication require…...

公众号迁移多久可以完成?

公众号账号迁移的作用是什么?只能变更主体吗?长期以来,由于部分公众号在注册时,主体不准确的历史原因,或者公众号主体发生合并、分立或业务调整等现实状况,在公众号登记主体不能对应实际运营人的情况下&…...

Spring Cloud Stream Kafka(3.2.2版本)使用

问题 正在尝试只用Spring Cloud Stream Kafka。 步骤 配置 spring:cloud:function:definition: project2Building stream:kafka:binder:brokers: xxxx:9002configuration:enable.auto.commit: falsesession.timeout.ms: 30000max.poll.records: 30allow.auto.create.top…...

8位微控制器上的轻量级SM2加密算法实现:C语言详细指南与完整代码解析

引言 在当今的数字化世界中,安全性是每个系统的核心。无论是智能家居、医疗设备还是工业自动化,每个设备都需要确保数据的安全性和完整性。对于许多应用来说,使用高级的微控制器或处理器可能是不切实际的,因为它们可能会增加成本…...

neo4j下载安装配置步骤

目录 一、介绍 简介 Neo4j和JDK版本对应 二、下载 官网下载 直接获取 三、解压缩安装 四、配置环境变量 五、启动测试 一、介绍 简介 Neo4j是一款高性能的图数据库,专门用于存储和处理图形数据。它采用节点、关系和属性的图形结构,非常适用于…...

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示

2.1 无符号数和有符号数 2.1.1 无符号数 没有符号的数,其实就是非负数。在计算机中用字节码表示,目前最常用的是八位和十六位的。 2.1.2 有符号数 将正负符号数字化,0代表 ,1代表 - ,并把代表符号的数字放在有效数…...

指针笔试题详解

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.前言 2.指针题写出下列程序的结…...

MySQL 日志管理、备份与恢复

目录 1 数据备份的重要性 2 MySQL 日志管理 ​3 备份类型 3.1 数据备份的分类 3.2 备份方式比较 3.3 合理值区间 3.4 常见的备份方法 4 MySQL 完全备份与恢复 4.1 MySQL 完全备份 5 mysqldump 备份与恢复 5.1 MySQL 完全恢复 6 MySQL 增量备份与恢复 6.1 MySQL 增量…...

vtk- 数据类型(一) 三角链实例代码

三角链实例代码 #include <iostream> #include <string> #include <regex> #include "tuex.h" #include "vtkCylinderSource.h" #include "vtkPolyDataMapper.h" #include "vtkActor.h" #include "vtkRendere…...

Git大全

目录 一、Git概述 1.1Git简介 1.2Git工作流程图 1.3查看Git的版本 1.4 Git 使用前配置 1.5为常用指令配置别名&#xff08;可选&#xff09; 1.5.1打开用户目录&#xff0c;创建 .bashrc 文件 1.5.2在 .bashrc 文件中输入如下内容&#xff1a; 1.5.3打开gitBash&#xff0c;执行…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...