Numpy的transponse()函数

Numpy的transponse()函数

一、前言

今天看源码的时候,发现了numpy的transponse函数没有理解,特意学习记录一下。numpy.transpose()函数是对矩阵按照所需要的要求进行转置的。

二、实例分析

我们通过代码进行测试分析。

# -*- coding: utf-8 -*-
import numpy as np

if __name__ == '__main__':
	a = np.array(np.arange(40).reshape(2, 4, 5))
	print('转置前:')
	print(a)
	print(a[0][3][4])

	b = np.transpose(a, [1, 2, 0])
	print('转置后:')
	print(b)
	print(b[3][4][0])

运行结果如下:

Numpy的transponse()函数

从上图可以看出,数组a的shape为(2,4,5),它是一个三位数组,那么这个元组对应的索引值为:(0,1,2)。也就是a.shpae的下标:(2[0],4[1],5[2]),[]中对应的是shape元组的索引值,现在,通过transponse(a, [1, 2, 0]),那么元组的shape就从(2[0],4[1],5[2])变成了(4[1],5[2],2[0])。

可以看到transponse其实就是该百年了高维数组的形状,对里面的元素进行了重新排序。

例如:

元素19的位置在a中的位置为a[0][3][4],经过transponse(a, [1, 2, 0])后,元素19的位置变为了b[3][4][0]。

三、总结

细细体会,发现规律之后,其实就很简单了。

来源:

https://cuijiahua.com/blog/2018/02/trick-2.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?