méthode numpy.transpose pour transposer des tableaux tridimensionnels

不言
Libérer: 2018-04-17 15:33:00
original
3918 Les gens l'ont consulté

Ce qui suit est un article sur la méthode de transposition de numpy.transpose pour les tableaux tridimensionnels. Elle a une bonne valeur de référence et j'espère qu'elle sera utile à tout le monde. Venez jeter un oeil ensemble

comme suit :

import numpy as np
Copier après la connexion

Tableau tridimensionnel

arr1 = np.arange(16).reshape((2, 2, 4)) 
#[[[ 0 1 2 3] 
# [ 4 5 6 7]] 
 
# [[ 8 9 10 11] 
# [12 13 14 15]]] 
 
arr2=arr1.transpose((1,0,2)) 
#[[[ 0 1 2 3] 
# [ 8 9 10 11]] 
# 
# [[ 4 5 6 7] 
# [12 13 14 15]]]
Copier après la connexion

La séquence positive est (0, 1, 2), et le tableau est

#[[[ 0 1 2 3] 
# [ 4 5 6 7]] 
 
# [[ 8 9 10 11] 
# [12 13 14 15]]]
Copier après la connexion

Pourquoi après avoir entré tanspose (1, 0, 2), le tableau devient

#[[[ 0 1 2 3] 
# [ 8 9 10 11]] 
# 
# [[ 4 5 6 7] 
# [12 13 14 15]]]
Copier après la connexion

Après une observation attentive, vous pouvez voir que la différence entre le tableau transposé et le tableau pré-transposé est que la deuxième ligne de la première page et la première ligne de la deuxième les pages sont échangées, mais pourquoi ?

Quand j'utilise arr1[0,1,0], la valeur de l'index est 4

Quand j'utilise arr2[1,0,0], l'index La valeur est 4

Il semble y avoir un lien entre les changements dans la table des paramètres d'index et la différence entre l'ordre positif et l'ordre transposé

Pour le tableau arr1, le La table des paramètres d'index [0, 0, x ] peut représenter la première ligne de la première page. Une fois les deux paramètres actuels échangés, la table des paramètres d'index du même élément n'a pas changé

Par conséquent, la première ligne. de la première page de arr2 et de la première page de arr1 La première ligne est la même

Pour le tableau arr1, la table des paramètres d'index [0, 1, x] peut représenter la deuxième ligne de la première page. Une fois les deux paramètres actuels échangés, la valeur d'index du même élément est telle que [0, 1, 0] devient [1, 0, 0],

Cela explique la différence dans la table des paramètres d'index de valeur d'index 4

C'est probablement l'idée, donc transpose(1,0,2), la deuxième ligne de la première page du tableau et la première les rangées de la deuxième page sont inversées

Les quatre méthodes de transposition suivantes sont également à peu près celles-ci. Si vous regardez attentivement l'idée, elle ne devrait pas être difficile à comprendre

arr3=arr1.transpose((0,2,1)) 
 
# [[[ 0 4] 
# [ 1 5] 
# [ 2 6] 
# [ 3 7]] 
# 
# [[ 8 12] 
# [ 9 13] 
# [10 14] 
# [11 15]]] 
 
arr4=arr1.transpose((2,0,1)) 
#[[[ 0 4] 
# [ 8 12]] 
# 
# [[ 1 5] 
# [ 9 13]] 
# 
# [[ 2 6] 
# [10 14]] 
# 
# [[ 3 7] 
# [11 15]]]
Copier après la connexion

Ce qu'il convient de noter ici, c'est que le tableau arr4 devient 4 pages. En effet, le numéro de page et après l'échange de code de ligne, le numéro de page

est passé de 2. à 4

et le code de ligne est passé de 4 à 2

arr5=arr1.transpose((2,1,0)) 
#[[[ 0 8] 
# [ 4 12]] 
# 
# [[ 1 9] 
# [ 5 13]] 
# 
# [[ 2 10] 
# [ 6 14]] 
# 
# [[ 3 11] 
# [ 7 15]]] 
 
arr6=arr1.transpose((1,2,0)) 
#[[[ 0 8] 
# [ 1 9] 
# [ 2 10] 
# [ 3 11]] 
# 
# [[ 4 12] 
# [ 5 13] 
# [ 6 14] 
# [ 7 15]]]
Copier après la connexion

De plus, transposer (2, 0, 1) peut être vu comme, d'abord transposer (0, 2, 1) puis transposer ( 1, 0, 2)

Transposer (2, 1, 0) peut être vu comme transposer (1, 0, 2) d'abord, puis transposer (0, 2, 1), et enfin transposer (1, 0, 2)

Transposer (1, 2, 0) peut être vu comme transposer ( 1, 0, 2) d'abord, puis en transposant (0, 2, 1)

Le code peut s'écrire

arr4=arr1.transpose(0,2,1).transpose(1,0,2)
Copier après la connexion

#[[[ 0 4]
# [ 8 12]]
#
# [[ 1 5]
# [ 9 13]]
#
# [[ 2 6]
# [10 14]]
#
# [[ 3 7]
# [11 15]]]
Copier après la connexion

Le résultat est le même !

Recommandations associées :

La différence entre un tableau et un tableau dans numpy

Comment gérer les tableaux booléens dans numpy

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!