【数据分析 - 基础入门之NumPy⑤】NumPy基本操作 - 二

知识目录

  • 前言
  • 一、聚合函数
  • 二、矩阵操作
    • 2.1 算术运算
    • 2.2 线性代数
    • 2.3 其他数学操作
  • 三、广播机制
    • 3.1 广播的原则
    • 3.2 案例
  • 四、排序
  • 五、文件操作
  • 结语
  • 相关导读

前言

大家好!本期给大家带来的是【数据分析 - 基础入门之NumPy⑤】NumPy基本操作 - 二,收录于作者的【 Python 数据分析】专栏,正在火热🔥更新中……

每日金句分享:背上背包,带上行囊,去你的世界旅行。』—— 「柯」

下面让我们进入正题吧。

一、聚合函数

NumPy 中提供了许多内置函数,用于快速达成一些功能。

函数功能
np.sum()求和
np.mean()平均值
np.average()平均值
np.min()最小值
np.max()最大值
np.std()标准差
np.var()方差
np.median()中位数
np.power()幂运算
np.sqrt()开方
np.argmin()最小值的下标
np.argmax()最大值的下标
np.log()对数
np.exp()指数
np.argwhere按条件查找

下面是一些使用示例:

n1 = np.array([[1,3,4],[3,2,9],[7,1,0]
])
print(np.sum(n1)) # 求和
print(np.min(n1)) # 最小值
print(np.max(n1)) # 最大值
print(np.mean(n1)) # 平均值
print(np.average(n1)) # 平均值
print(np.median(n1)) # 中位数

print(np.argmin(n1)) # 最小值对应下标
print(np.argmax(n1)) # 最大值对应下标
print(np.std(n1)) # 标准差
print(np.var(n1)) # 方差
print(np.power(n1,2)) # 幂运算
print(np.argwhere(n1 > 2)) # 按条件查找并返回位置

二、矩阵操作

2.1 算术运算

算术运算指的是和标量之间的运算,ndarray 数组可以直接和标量进行各种算术运算,例如:+、-、*、/、%、//(整除)、**(次方)。

# 矩阵算术运算
n1 = np.random.randint(0,10,(2,3))
print(n1)
n2 = np.random.randint(0,10,(2,3))
print(n2)
n1 * n2

2.2 线性代数

线性代数中矩阵的操作主要包括:矩阵乘法、求逆矩阵、求矩阵的行列式、求矩阵的秩等。

函数功能
np.dot()矩阵乘法
np.linalg.inv()求逆矩阵
np.linalg.det()求矩阵的行列式
np.linalg.matrix_rank()求矩阵的秩

下面是具体示例:

# 线性代数
n1 = np.random.randint(0,10,(2,3))
print(n1)
n2 = np.random.randint(0,10,(3,2))
print(n2)
print(np.dot(n1,n2)) #
n3 = np.random.randint(0,10,(2,2))
print(np.linalg.inv(n3)) # 求逆:Last 2 dimensions of the array must be square,数组的最后 2 个维度必须是正方形的
print(np.linalg.det(n3))
print(np.linalg.matrix_rank(n3))

2.3 其他数学操作

NumPy 中还有一些其他数学操作,具体可以参考:NumPy中文网。

三、广播机制

如果两个数组 a 和 b 形状相同,即满足 a.shape == b.shape ,那么算术运算可以对应元素进行;如果形状不同,NumPy会自动匹配广播机制,广播 (Broadcast) 是 numpy 对不同形状 (shape) 的数组进行数值计算的方式。

当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制。

3.1 广播的原则

  • <1> 如果两个数组的最后一个维度(trailing dimension,即 从末尾开始算起的维度)的维数相同 ,(在二维数组中表现为列数相同)。
  • <2> 两个数组行数相同,其中一方列维度为1,则认为它们是广播兼容的。广播会在缺失和(或)长度为1的维度上进行。

pandas 没有广播机制。

3.2 案例

# (1) 最后维度维数相同
n1 = np.array([[1,4,3],[9,1,5]
])
n2 = [[3,6,1]
]
print(n1 + n2)
# (2) 其中一个维度为1
n3 = np.array([[1],[3]
])
n1 + n3

四、排序

对数组的排序是同一个方法,两种方式:如果使用 np.sort() ,不改变原数组;如果使用 n.sort() ,n 是一个数组,会改变原数组。

print(n1)
# 不改变原数组
np.sort(n1)
# 改变原数组
n1.sort()
print(n1)

五、文件操作

对文件的操作主要有保存文件和加载文件,下面分别介绍。

函数功能
np.save()保存 ndarray 到一个 npy 文件
np.savez()保存 ndarray 到一个 npz 文件
np.savetxt()保存 ndarray 到一个 txt/csv 文件
np.load()读取 npy、npz 文件
np.loadtxt()读取 txt、csv 文件

结语

本篇文章主要介绍了 NumPy 的基本操作,最重要的是要理解 NumPy 中的广播机制以及常用函数。

🍻 我是向阳花花花花,在学习的路上一直前行,期待与你一起进步。~ 🍻

🔥 如果文中有些地方不清楚的话,欢迎联系我,我会给大家提供思路及解答。🔥

相关导读

文章直达链接
上期回顾【数据分析 - 基础入门之NumPy④】- NumPy基本操作 - 一
下期预告【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化

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

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

相关文章

【Ubuntu】系统U盘变为普通U盘

如果您在 Ubuntu 系统上没有磁盘工具可用&#xff0c;您可以尝试使用命令行工具来格式化系统 U 盘。请按照以下步骤进行操作&#xff1a; 打开终端&#xff1a;在 Ubuntu 桌面上&#xff0c;按下 Ctrl Alt T 快捷键&#xff0c;或者在应用程序菜单中搜索并打开 "终端&qu…

《MySQL》数据类型

文章目录 一&#xff0c;数值类型int类型bit类型小数类型float 和 decimal 二&#xff0c;字符串类型char和varchar日期和时间类型enum和set 一&#xff0c;数值类型 MySQL数据库里面的数据类型 int类型 int类型是一个大类 类型大小tinyint1字节 &#xff08;-27 ~ 27-1&a…

JS 实现CSV文件转换SQL文件小工具

一. 需求 最近在项目中遇到一个问题&#xff0c;客户提供的数据是CSV格式的&#xff0c; 需要将CSV文件中的数据转换为SQL语句文件。 &#x1f605;由于本人不会Excel的vba编程&#xff0c;因此决定使用JS来实现。 二. 实现思路 提供一个文件上传框&#xff0c;支持多文件上…

并发编程_jmm部分

1. JMM 理解 前提&#xff1a;并发编程有3大问题&#xff0c;可见性、有序性、原子性。 导致可见性的原因是缓存&#xff0c;有序性的原因是 编译器优化。解决方法就是直接禁用缓存和编译器优化&#xff0c;导致程序性能堪忧。 因此合理的方案就是按需禁用缓存和编译器优化。 …

ATFX国际:大非农数据来袭,美国劳动力市场需求或空前旺盛

ATFX国际&#xff1a;昨日晚间公布的ADP数据震惊市场&#xff0c;新增就业人口高达49.7万人&#xff0c;而预期值仅为22.8万人&#xff0c;前值也只有26.7万人。公布值约为预期值和前值的总和。 ▲ATFX图 ADP数据是非农就业报告的前瞻指标&#xff0c;前者表现亮眼&#xff0c…

【算法集训之线性表篇】Day 01

文章目录 题目知识点补充思路分析代码实现运行结果 题目 01.从顺序表中删除具有最小值元素&#xff08;假设唯一&#xff09;并返回被删元素的值。空出位置由最后一个元素填补&#xff0c;若顺序表为空&#xff0c;则显示出错信息并退出运行。 知识点补充 顺序表的特点是逻辑…

Handshake failed due to invalid Upgrade header: null 解决方案以及连接60s,信息不交互,连接断开

Handshake failed due to invalid Upgrade header: null 解决方案以及连接60s&#xff0c;信息不交互&#xff0c;连接断开 1. 问题背景&#xff1a;因为后端用了nginx代理&#xff0c;所以websocket连接的过程中报错&#xff1a;Handshake failed due to invalid Upgrade hea…

Elasticsearch:跨集群复制应用场景及实操 - Cross Cluster Replication

通过跨集群复制&#xff08;Cross Cluster Replication - CCR&#xff09;&#xff0c;你可以跨集群将索引复制并实现&#xff1a; 在数据中心中断时继续处理搜索请求防止搜索量影响索引吞吐量通过在距用户较近的地理位置处理搜索请求来减少搜索延迟 跨集群复制采用主动 - 被…

HTML5+CSS3+JS小实例:背景动态变化的登录界面2.0

实例:背景动态变化的登录界面2.0 技术栈:HTML+CSS+JS 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" con…

Chapter 4: Functions | Python for Everybody 讲义笔记_En

文章目录 Python for Everybody课程简介FunctionsFunction callsBuilt-in functionsType conversion functionsMath functionsRandom numbersAdding new functionsDefinitions and usesFlow of executionParameters and argumentsFruitful functions and void functionsWhy fun…

【广州华锐互动】VR地铁安全应急疏散模拟演练系统

VR地铁安全应急疏散模拟演练系统是一种利用虚拟现实技术模拟铁路安全事故的应用程序。该系统具有以下功能和内容&#xff1a; 多种场景和情境&#xff1a;用户可以选择不同的场景和情境进行模拟&#xff0c;例如列车脱轨、火灾、爆炸等。 操作控制器或手势识别技术&#xff1…

TypeScript 中【类型断言】得使用方法

类型断言的概念 有些时候开发者比TS本身更清楚当前的类型是什么&#xff0c;可以使用断言&#xff08;as&#xff09;让类型更加精确和具体。 类型断言&#xff08;Type Assertion&#xff09;表示可以用来手动指定一个值的类型。 类型断言语法&#xff1a; 值 as 类型 或 <…