流行的Python库numpy及Pandas简要介绍
numpy.ndarray 是NumPy库中的主要数据结构,它是一个多维数组,用于存储和操作数值数据。NumPy是Python中用于数值计算的强大库,numpy.ndarray 是它的核心数据类型,提供了高效的数值运算和广泛的数学函数。
以下是 numpy.ndarray 的一些重要特点和功能:
-
多维数组:
numpy.ndarray可以是一维、二维或多维的数组,这使得它非常适合处理各种复杂的数据。 -
数据类型:
numpy.ndarray可以包含不同数据类型的元素,如整数、浮点数、布尔值等。每个数组都有一个固定的数据类型,可通过dtype属性获得。 -
广播:NumPy支持广播,这意味着可以对不同形状的数组执行元素级操作,而不需要显式循环。
-
矢量化操作:NumPy提供了各种数学、逻辑和统计函数,这些函数能够高效地应用于
numpy.ndarray中的元素,而无需编写循环。 -
切片和索引:可以使用切片和索引操作从
numpy.ndarray中选择和操作数据的子集。 -
数学运算:NumPy支持各种数学运算,包括加法、减法、乘法、除法、矩阵运算等。
-
随机数生成:NumPy包括随机数生成函数,用于生成随机数或随机数组。
-
数据统计:NumPy提供了各种统计函数,用于计算平均值、方差、标准差、最大值、最小值等。
-
线性代数:NumPy包括线性代数函数,用于矩阵操作、求解线性方程组等。
-
文件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的一些主要特点和功能:
-
数据结构:Pandas引入了两种主要的数据结构,
DataFrame和Series。DataFrame是一个二维表格数据结构,类似于电子表格或SQL表,可以容纳多种数据类型的列。每列可以有不同的数据类型。Series是一个一维标记数组,类似于带有标签的NumPy数组。
-
数据读取:Pandas可以轻松读取各种数据源,包括CSV、Excel、SQL数据库、JSON、HTML、以及Web API等。
-
数据清洗和处理:Pandas提供了丰富的数据操作功能,包括缺失值处理、数据合并、重塑、过滤、排序、分组和聚合等。
-
数据分析:Pandas支持各种数据分析任务,包括统计描述、数据可视化、时间序列分析、数据透视表等。
-
快速索引:Pandas的
DataFrame和Series可以通过标签或位置进行快速的数据检索和索引。 -
灵活的数据可视化:Pandas结合了Matplotlib和Seaborn等可视化库,使得数据可视化变得容易。
-
数据导出:可以将清洗和分析后的数据导出到各种文件格式,包括CSV、Excel、SQL数据库等。
-
时间序列数据:Pandas对于处理时间序列数据非常强大,可以进行日期和时间的解析、滚动窗口计算等。
-
高性能:Pandas被设计为高性能数据处理工具,可以处理大型数据集。
-
广泛的社区支持:由于其流行和广泛使用,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/ 选哪一个 可以选择第一个࿰…...
【动手学深度学习-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为常用指令配置别名(可选) 1.5.1打开用户目录,创建 .bashrc 文件 1.5.2在 .bashrc 文件中输入如下内容: 1.5.3打开gitBash,执行…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
如何把工业通信协议转换成http websocket
1.现状 工业通信协议多数工作在边缘设备上,比如:PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发,当设备上用的是modbus从站时,采集设备数据需要开发modbus主站;当设备上用的是西门子PN协议时…...
leetcode_69.x的平方根
题目如下 : 看到题 ,我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历,我们是整数的平方根,所以我们分两…...
大数据驱动企业决策智能化的路径与实践
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:数据驱动的企业竞争力重构 在这个瞬息万变的商业时代,“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...
欢乐熊大话蓝牙知识17:多连接 BLE 怎么设计服务不会乱?分层思维来救场!
多连接 BLE 怎么设计服务不会乱?分层思维来救场! 作者按: 你是不是也遇到过 BLE 多连接时,调试现场像网吧“掉线风暴”? 温度传感器连上了,心率带丢了;一边 OTA 更新,一边通知卡壳。…...
RLHF vs RLVR:对齐学习中的两种强化方式详解
在语言模型对齐(alignment)中,强化学习(RL)是一种重要的策略。而其中两种典型形式——RLHF(Reinforcement Learning with Human Feedback) 与 RLVR(Reinforcement Learning with Ver…...
开疆智能Ethernet/IP转Modbus网关连接鸣志步进电机驱动器配置案例
在工业自动化控制系统中,常常会遇到不同品牌和通信协议的设备需要协同工作的情况。本案例中,客户现场采用了 罗克韦尔PLC,但需要控制的变频器仅支持 ModbusRTU 协议。为了实现PLC 对变频器的有效控制与监控,引入了开疆智能Etherne…...
