欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

對(duì)numpy中的transpose和swapaxes函數(shù)詳解

 更新時(shí)間:2018年08月02日 15:18:58   作者:ML_BOY  
今天小編就為大家分享一篇對(duì)numpy中的transpose和swapaxes函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

transpose()

這個(gè)函數(shù)如果括號(hào)內(nèi)不帶參數(shù),就相當(dāng)于轉(zhuǎn)置,和.T效果一樣,而今天主要來講解其帶參數(shù)。

我們看如下一個(gè)numpy的數(shù)組:

`arr=np.arange(16).reshape((2,2,4)) 
arr= 
array([[[ 0, 1, 2, 3], 
[ 4, 5, 6, 7]], 
[[ 8, 9, 10, 11], 
[12, 13, 14, 15]]])
` 

那么有:

arr.transpose(2,1,0)
array([[[ 0, 8],
  [ 4, 12]],

  [[ 1, 9],
  [ 5, 13]],

  [[ 2, 10],
  [ 6, 14]],

  [[ 3, 11],
  [ 7, 15]]])

為什么會(huì)是這樣的結(jié)果呢,這是因?yàn)閍rr這個(gè)數(shù)組有三個(gè)維度,三個(gè)維度的編號(hào)對(duì)應(yīng)為(0,1,2),比如這樣,我們需要拿到7這個(gè)數(shù)字,怎么辦,肯定需要些三個(gè)維度的值,7的第一個(gè)維度為0,第二個(gè)維度為1,第三個(gè)3,所以arr[0,1,3]則拿到了7

arr[0,1,3] #結(jié)果就是7

這下應(yīng)該懂了些吧,好,再回到transpose()這個(gè)函數(shù),它里面就是維度的排序,比如我們后面寫的transpose(2,1,0),就是把之前第三個(gè)維度轉(zhuǎn)為第一個(gè)維度,之前的第二個(gè)維度不變,之前的第一個(gè)維度變?yōu)榈谌齻€(gè)維度,好那么我們繼續(xù)拿7這個(gè)值來說,之前的索引為[0,1,3],按照我們的轉(zhuǎn)換方法,把之前的第三維度變?yōu)榈谝痪S度,之前的第一維度變?yōu)榈谌S度,那么現(xiàn)在7的索引就是(3,1,0)

同理所有的數(shù)組內(nèi)的數(shù)字都是這樣變得,這就是transpose()內(nèi)參數(shù)的變化。

理解了上面,再來理解swapaxes()就很簡單了,swapaxes接受一對(duì)軸編號(hào),其實(shí)這里我們叫一對(duì)維度編號(hào)更好吧,比如:

arr.swapaxes(2,1) #就是將第三個(gè)維度和第二個(gè)維度交換
array([[[ 0, 4],
  [ 1, 5],
  [ 2, 6],
  [ 3, 7]],

  [[ 8, 12],
  [ 9, 13],
  [10, 14],
  [11, 15]]])

還是那我們的數(shù)字7來說,之前的索引是(0,1,3),那么交換之后,就應(yīng)該是(0,3,1)

多說一句,其實(shí)numpy高維數(shù)組的切片也是這樣選取維度的。

以上這篇對(duì)numpy中的transpose和swapaxes函數(shù)詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論