前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Numpy的轴及numpy数组转置换轴

Numpy的轴及numpy数组转置换轴

作者头像
老虎也淘气
发布2024-01-30 14:59:56
1650
发布2024-01-30 14:59:56
举报
文章被收录于专栏:Data分析

前言:

在现代数据科学和机器学习领域,NumPy成为了Python中最为强大和广泛使用的科学计算库之一。它提供了高性能的多维数组对象,以及用于处理这些数组的各种数学函数。本文将探讨NumPy中一个关键而强大的概念——轴(axis)以及如何利用数组的转置来灵活操作这些轴。

随着数据集的不断增大和复杂性的提高,了解如何正确使用轴成为提高代码效率和数据处理能力的关键一环。通过深入理解轴的概念,您将能够更好地理解和利用NumPy提供的强大功能,从而更高效地处理各种数据任务。

让我们深入探讨NumPy数组的轴以及如何通过转置操作来灵活地操控数据,为您的科学计算和数据分析工作提供更为精细的控制。

Numpy的轴

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
import numpy as np
数组=np.array([[[1,2],[4,5],[7,8]],[[8,9],[11,12],[14,15]],[[10,11],[13,14],[16,17]],[[19,20],[22,23],[25,26]]])
print(数组.shape)  # 返回 (4, 3, 2)

最内层一对 [ ] 可以代表一个1维数组 加粗的一对 [ ] 里面有3个一维数组,也就是2维数组 最外层的一对 [ ] 里面有3个2维数组也就是3维数组 0轴是行,1轴是列,2轴是纵深 数组的shape维度是(4,3,2),元组的索引为 [ 0,1,2 ] 假设维度是(2,3),元组的索引为[0,1] 假设维度是(4,) 元组的索引为[0] 可以看到轴编号和shape元组的索引是对等的,所以这个编号可以理解为高维nd.array.shape产生的元组的索引 我们知道shape(4,3,2)表示数组的维度,既然shape的索引可以看做轴编号,那么一条轴其实就是一个维度 0轴对应的是最高维度3维,1轴对应2维,2轴对应的就是最低维度的1维

总结:凡是提到轴,先看数组的维度,有几维就有几个轴

沿轴切片

代码语言:javascript
复制
import numpy as np
数组=np.array([  [1,2,3] , [4,5,6] , [7,8,9]  ])
print(数组)
print(数组.shape)

数组的维度是(3,3),这个元组的索引是 [0,1],表示这个2维数组有两条轴:0轴和1轴

首先看1个参数的切片操作: print(数组[0:2])

这里有个很重要的概念, :2 是切片的第一个参数,约定俗成第一个参数就代表0轴 0轴表示2维,所以这个切片是在2维这个维度上切的,又叫“沿0轴切”。

在这里插入图片描述
在这里插入图片描述

这个2维数据是由3个1维数组组成的,这3个1维数组当然也有索引号也是[0,1,2],[ :2 ] 就表示它要切取2维(0轴)上3个1维数组中的索引 [ 0 ] 和索引 [ 1 ] ,于是得到 ([ 1, 2, 3 ]) 和 ([ 4, 5, 6 ]) 这两个1维数组。

首先看2个参数的切片操作: print(数组[:2,1:])

就是在两个维度(轴)上各切一刀,第1个参数就是2维(0轴), :2 表示切取2维(0轴)上的索引 [ 0 ] 和索引 [ 1 ] ,即 ([ 1, 2, 3 ]) 和 ([ 4, 5, 6 ]) 这两个1维数组 第2个参数就是1维(1轴),1: 表示切取1维(1轴)上的索引 [ 1 ] 和索引 [ 2 ] ,即对数组 ([ 1, 2, 3 ]) 取 ([ 2,3 ]) ,对数组 ([ 4, 5, 6 ]) 取 ([ 5,6 ])

在这里插入图片描述
在这里插入图片描述

传入轴编号怎么理解

代码语言:javascript
复制
import numpy as np
数组=np.arange(16).reshape((2, 2, 4))
print(数组)
print(数组.shape)

数组的维度:(2,2,4) 元组索引(下标):[0,1,2]

我们转换它: 3维数组的1维(2轴)上是4个一维数组,每个1维数组都有一个由0,1两个轴编号组成的索引 [ 0,0 ] , [ 0,1 ] , [ 1,0 ] , [ 1,1 ],transpose方法传入的参数是轴编号 (1, 0, 2) 在就是把元组的索引顺序改变成 [ 1,0,2 ] 也就是把数组 [ 0,1 ] 的一维数组变成数组[ 1,0 ]

在这里插入图片描述
在这里插入图片描述

numpy数组转置换轴

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

transpose方法 【行列转置】

代码语言:javascript
复制
import numpy as np
数组=np.arange(24).reshape((4,6))
print(数组)
print("-"*30)
print(数组.transpose())
在这里插入图片描述
在这里插入图片描述

swapaxes方法 【轴转置】

代码语言:javascript
复制
mport numpy as np
数组=np.arange(24).reshape((4,6))
print(数组)
print("-"*30)
print(数组.swapaxes(1,0))
在这里插入图片描述
在这里插入图片描述

结尾:

在本文中,我们详细研究了NumPy数组的轴概念,并深入了解了如何通过转置操作来改变数组的形状以及调整轴的顺序。这些技能不仅对于处理大型数据集和进行高效计算至关重要,还对于构建复杂的机器学习模型和深度学习网络具有重要意义。

通过掌握NumPy中轴的灵活运用,您将能够更自如地操控数据流,处理复杂的统计分析,以及更好地适应不同任务的需求。希望这篇文章能够为您提供清晰而深入的理解,使您在日常数据处理和科学计算中更为得心应手。不断探索NumPy的强大功能,您将发现它是实现数据科学愿景的不可或缺的工具之一。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • Numpy的轴
    • 沿轴切片
      • 传入轴编号怎么理解
      • numpy数组转置换轴
        • transpose方法 【行列转置】
          • swapaxes方法 【轴转置】
          • 结尾:
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档