数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—NumPy—Numpy 高级(八)

简介: 你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,

2.2 广播机制

🚩所谓广播,就是对原本数据的不断复制,复制到和目标数组相同的构造的时候,比如我们有一个三行四列的数组,要加一行四列的数组,那么一行四列的数组就会自己复制三份,变成三行四列的数组,其中每一行都和原本数组的值相同,变成这种形式之后,再和原三行四列的数组进行相加运算,下面,我们从三个方面进行代码演示:一维数组的广播,二维数组的广播,三维数组的广播。


2.2.1 一维数组的广播

image.png

arr1 = np.random.randint(0, 10, size = (5, 3))
arr2 = np.arange(1, 4)
display(arr1, arr2)
# arr1 有五行,arr2 只有一行
# 它们俩的相加就是通过广播机制
# 广播机制:arr2 变身,变成了五份(一模一样)
# 每一份对应每一行的相加
arr1 + arr2

image.png

2.2.2 二维数组的广播

image.png

arr3 = np.random.randint(0, 10, size = (4, 5))
# 计算每一行的平均值
arr4 = arr3.mean(axis = 1)
display(arr3, arr4)
# 注意 arr3 每一行5个数,arr4一行中为4个数
arr3 - arr4 # 形状不匹配,所以报错

23.png

因为形状不匹配的原因,故会报错,我们可以使用 2.1.1 数组变形 中的 reshape() 方法,对数组进行更改:

arr3 = np.random.randint(0, 10, size = (4, 5))
# 计算每一行的平均值
arr4 = arr3.mean(axis = 1)
display(arr3, arr4)
# 形状改变,arr4改为了四行一列
display(arr4.reshape(4, 1))
# arr3为四行五列
arr3 - arr4.reshape(4, 1)

image.png

2.2.3 三维数组的广播

image.png

import numpy as np 
arr1 = np.array([0,1,2,3,4,5,6,7]*3).reshape(3,4,2) #shape(3,4,2) 
arr2 = np.array([0,1,2,3,4,5,6,7]).reshape(4,2) #shape(4,2) 
print('三维数组:')
display(arr1)
print('二维数组:')
display(arr2)
arr3 = arr1 + arr2 # arr2数组在0维上复制3份 shape(3,4,2) 
arr3

24.png

25.png



目录
相关文章
|
1月前
|
数据采集 机器学习/深度学习 数据可视化
深入学习NumPy库在数据分析中的应用场景
深入学习NumPy库在数据分析中的应用场景
|
1月前
|
机器学习/深度学习 数据挖掘 索引
Python数据分析(一)—— Numpy快速入门
Python数据分析(一)—— Numpy快速入门
|
3月前
|
分布式计算 并行计算 编译器
NumPy 高级教程——并行计算
NumPy 高级教程——并行计算【1月更文挑战第3篇】
179 26
|
3月前
|
存储 机器学习/深度学习 Python
NumPy 高级教程——存储和加载数据
NumPy 高级教程——存储和加载数据 【1月更文挑战第1篇】
66 3
NumPy 高级教程——存储和加载数据
|
3月前
|
存储 数据可视化 数据挖掘
NumPy 和 Pandas 数据分析实用指南:1~6 全(下)
NumPy 和 Pandas 数据分析实用指南:1~6 全
|
3月前
|
关系型数据库 MySQL 数据挖掘
NumPy 和 Pandas 数据分析实用指南:1~6 全!(上)
NumPy 和 Pandas 数据分析实用指南:1~6 全
|
3月前
|
数据可视化 安全 数据挖掘
NumPy 秘籍中文第二版:十二、使用 NumPy 进行探索性和预测性数据分析
NumPy 秘籍中文第二版:十二、使用 NumPy 进行探索性和预测性数据分析
|
3月前
|
算法 Python
NumPy 高级教程——性能优化
NumPy 高级教程——性能优化 【1月更文挑战第2篇】
88 0
|
3月前
|
数据库 索引 Python
NumPy 高级教程——结构化数组
NumPy 高级教程——结构化数组
60 1
|
3月前
|
存储 C语言 Python
NumPy 高级教程——内存布局
NumPy 高级教程——内存布局
45 5