Numpy的轴及numpy数组转置换轴

简介: Numpy的轴及numpy数组转置换轴

Numpy的轴

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维

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

沿轴切片

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 ])

传入轴编号怎么理解

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方法 【行列转置】

import numpy as np
数组=np.arange(24).reshape((4,6))
print(数组)
print("-"*30)
print(数组.transpose())

swapaxes方法 【轴转置】

mport numpy as np
数组=np.arange(24).reshape((4,6))
print(数组)
print("-"*30)
print(数组.swapaxes(1,0))

相关文章
|
3月前
|
索引 Python
NumPy 教程 之 Numpy 数组操作 28
NumPy 提供多种数组操作功能,包括修改形状、翻转、连接和分割等。本教程重点介绍元素的添加与删除,如使用 `resize`、`append`、`insert` 和 `delete` 函数。其中 `numpy.insert` 可在指定索引前插入值,支持标量或数组插入。示例展示了不同情况下 `insert` 的使用方法,包括不指定轴时的数组扁平化插入,以及沿特定轴进行广播插入。
38 2
|
3月前
|
数据处理 索引 Python
NumPy 数组操作:和普通操作相较,到底蕴含着怎样令人费解的独特魅力?
【8月更文挑战第19天】NumPy是Python科学计算核心库,提供高效数组操作。不同于Python列表直接列举创建,NumPy用`np.array()`创建数组。两者都支持索引和切片,但NumPy性能更优。数学运算方面,NumPy支持简洁的向量化操作,如`my_array * 2`,无需循环。NumPy还简化了数组形状变换,如使用`reshape()`方法。此外,NumPy数组要求元素类型一致,提高了内存使用效率和计算速度。这些特点使NumPy在科学计算和数据分析中不可或缺。
31 0
|
1月前
|
Python
Numpy学习笔记(四):如何将数组升维、降维和去重
本文介绍了如何使用NumPy库对数组进行升维、降维和去重操作。
33 1
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
69 10
|
1月前
|
Python
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
NumPy库中的`np.concatenate`和`np.append`函数,它们分别用于沿指定轴拼接多个数组以及在指定轴上追加数组元素。
26 0
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
|
1月前
|
Python
使用 NumPy 进行数组操作的示例
使用 NumPy 进行数组操作的示例
|
1月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
85 4
|
1月前
|
机器学习/深度学习 并行计算 调度
CuPy:将 NumPy 数组调度到 GPU 上运行
CuPy:将 NumPy 数组调度到 GPU 上运行
59 1
|
2月前
|
Python
numpy | 插入不定长字符数组测试OK
本文介绍了如何在numpy中创建和操作不定长字符数组,包括插入和截断操作的测试。
|
2月前
|
API Python
Numpy 数组的一些集合操作
Numpy 数组的一些集合操作
31 0