首页 > 编程知识 正文

python二维列表转置,二维数组的转置

时间:2023-05-06 09:07:10 阅读:135252 作者:3237

我想你知道二维数组的转置,是矩阵交换

在numpy中也可以转置三维数组,np.T在默认情况下进行调换0轴和2轴的操作

本文主要就3位数组轴交换的理解发表本人的意见。

a=NP.Array(range(24 ) )

Out[101]:

array ([ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,

17、18、19、20、21、22、23 ]

b=a.reshape (2,3,4 ) )。

B

Out[103]:

array ([ 0,1,2,3 ],

[ 4,5,6,7 ],

[ 8,9,10,11 ],

[ 12,13,14,15 ],

[ 16,17,18,19 ],

[ 20,21,22,23 ] )

在3位数组中,三个轴分别称为行、列和面

在数组b中,

[ 0,1,2,3 ],

[ 4,5,6,7 ],

[8、9、10、11]是一行

[ 12,13,14,15 ],

[ 16,17,18,19 ],

[20、21、22、23]是一行

展开写[ 0,1,2,3 ]、[ 4,5,6,7 ]、[ 8,9,10,11 ]可以看得更清楚。 这是行的概念

[ 0,1,2,3 ]是一列

[4、5、6、7]是一列

[8、9、10、11]是一列

其中,[ 0,4,8 ] [ 1,5,9 ] [ 2,6,10 ] [ 3,7,11 ]分别是面

回顾一下,就知道b是由2行3列4面构成的3维排列(行表示0轴、列1轴、面2轴)。

接下来,请记住要更换哪个轴。 请勿更改另一个轴。 例如以下所示

将c作为b的列和面互换后的排列

c=b.swap axes (1,2 ) ) ) ) ) ) ) ) ) c ) ) ) b.swap axes (1,2 ) ) ) ) ) ) c ) ) ) b ) ) b ) ) b ) ) s ) b ) ) s ) b ) s )

C

Out[105]:

array ([ 0,4,8 ],

[ 1,5,9 ],

[ 2,6,10 ],

[ 3,7,11 ],

[ 12,16,20 ],

[ 13,17,21 ],

[ 14,18,22 ],

[ 15,19,23 ] )

请想起那句话。 无论更换哪一个轴,另一个轴都不会改变。 我知道是c还是两行。 而且,交换只会在每行发生变化

原来的列成了面,原来的面成了列

从第二个方面来看,d表示b的0轴和2轴的交换

d=b.swap axes (0,2 ) ) ) ) ) )。

d

Out[108]:

array ([ 0,12 ],

[ 4,16 ],

[ 8,20 ],

[ 1,13 ],

[ 5,17 ]、

[ 9,21 ],

[ 2,14 ],

[ 6,18 ]、

[ 10,22 ],

[ 3,15 ],

[ 7,19 ],

[ 11,23 ] )

看起来有点被逼得走投无路,想想那句话。 交换了0轴和2轴。 1轴不变。

我们把原来的b看作是以行和面为要素的二维排列

也就是说b是两行,是四方的。 每个面将被第一个元素替换,[ 0,4,8 ]将被[0]替换

即,b可以写成[0]、[1]、[2]、[3]

[12]、[13]、[14]和[15]。

而且,更换轴实际上成为二维排列转置

变换后为[0],[12]

[1],[13]

[2],[14]

[3],[15]

最后,试着扩大各自的面,就会得到结果。 到现在为止有没有法线,面中的元素个数和列的大小是一样的。

那么,接下来请试着更换0轴和1轴。 一步一步,欢迎评论区讨论。

PIL对象和numpy维数组的相互转换

# https://stack overflow.com/questions/384759/how-to-convert-a-pil-image-into-a-numpy-arrayfrompili .

numpy下三维数组到二维数组的转换

numpy的reshape (函数将三维数组转换为二维数组。 请参阅以下示例:a=NP.reshape(NP.arange ) 18 )、(3,3,2 )。) .

一. Numpy基础---序列

(一) Numpy数组对象Numpy的nadrray是多维数组对象,该对象具有:个实际的

数据 描述这些数据的元数据 大部分的数组操作仅仅修改元数据部分,而不改变底层的实际数据. 数组的数 ...

Numpy | 12 数组操作

Numpy 中包含了一些函数用于处理数组,大概可分为以下几类: 修改数组形状 翻转数组 修改数组维度 连接数组 分割数组 数组元素的添加与删除 一.修改数组形状 函数 描述 reshape 不改变数据 ...

NumPy:数组计算

一.MumPy:数组计算 1.NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础.2.NumPy的主要功能: ndarray,一个多维数组结构,高效且节省空间 无需循环 ...

python数据分析 Numpy基础 数组和矢量计算

NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...

C语言三维数组分解

很多人在学习C的时候,感觉三维数组很难想象,而且不理解深度是什么?做了一个图,帮大家分解一下                                                       ...

numpy的数组常用运算练习

import numpy as np # 一维数组 print('==========# 一维数组===========') A = np.array([1, 2, 3, 4]) print(A) # ...

NumPy 迭代数组

NumPy 迭代数组 NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式. 迭代器最基本的任务的可以完成对数组元素的访问. 接下来我们使用 arange() ...

随机推荐

JAVA学习遇到的问题:接口实现

引用知乎看到对接口的总结: 接口就是个招牌比如说你饿了,看到前面有个挂着KFC的店,然后你想到可以进去买汉堡了.KFC就是接口,我们看到了这个接口,就知道这个店会卖汉堡(实现接口).那么为什么我们要去 ...

零基础如何入门Python

编程零基础如何学习Python 如果你是零基础,注意是零基础,想入门编程的话,我推荐你学Python.虽然国内基本上是以C语言作为入门教学,但在麻省理工等国外大学都是以Python作为编程入门教学的. ...

20160123.CCPP详解体系(0002天)

程序片段(01):字符.c 内容概要: 转义字符 #define _CRT_SECURE_NO_WARNINGS #include #include

拥抱ARM妹子 序章!ARM妹子~~ 哥我来啦!

一个负心汉即将移情别恋,从51转到ARM妹子啦?其实8是的,俺准备开烂漫的向日葵.哇——咔~咔~~.考虑功耗和成本等问题,只有51肯定是不够的,所以嘛~~(一脸坏笑)嘿嘿~~,ARM妹子俺追定了.出于对ARM ...

linux android ndk

Android调用so库, so库是c语言编写, 在linux 64位系统+ndk(32位)生成 lib*.so (32位) 1. 所需软件环境: 1)so库开发环境 操作系统: Redhat Ser ...

2017上半年技术文章集合【Android】—184篇文章分类汇总

地址: http://blog.csdn.net/androidstarjack/article/details/77923753 声明 | 本文是于亚豪 原创 终端研发部 前言: 2017年已经过大 ...

Unity 图形处理(切分与拉伸)

素材的导入设置 1.导入的图片要设置为 Sprite 才能作为UI使用 2.如果需要进行切分,Sprite Mode 选择 Multiple 进行切分和拉伸设置 1.点击进入精灵编辑视图 2.点击按钮 ...

[HTML] 动态修改input placeholder的颜色

.invalid:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: red; } .invalid::-moz-placeholder { ...

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。