Maison  >  Article  >  développement back-end  >  Tableaux et listes en Python : introduction à l'utilisation des deux-points

Tableaux et listes en Python : introduction à l'utilisation des deux-points

不言
不言original
2018-04-18 11:13:085583parcourir

Ce qui suit est une introduction à l'utilisation flexible des tableaux, des listes et des deux-points en Python. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Jetons un coup d'oeil ensemble

Regardons un exemple :

import numpy as np
x=np.array([[1,2,3],[5,6,7],[7,8,9]])
print(x)
Out[64]:
array([[1, 2, 3],
  [5, 6, 7],
  [7, 8, 9]])

Je pense que tout le monde ne devrait avoir aucun problème avec les résultats ci-dessus. Il définit simplement un tableau np. La clé est ci-dessous

print(x[:,::-1])
Out[65]:
[[3 2 1]
 [7 6 5]
 [9 8 7]]
<.>

Le code ci-dessus implémente une fonction, qui consiste à organiser le tableau dans l'ordre inverse, dans l'ordre inverse dans chaque dimension. Comment comprendre ce code C'est un problème que j'ai rencontré lors de la migration du style d'apprentissage en profondeur ? , qui consiste à changer le RVB de l'image en bgr, puis quand j'ai vu le code écrit par d'autres, j'ai d'abord pensé à utiliser la transposition. Vous pouvez vous référer à mon blog pour une explication de la transposition, je n'entrerai pas dans les détails. ici, mais cela ne fonctionne pas réellement car la transposition est un échange de dimension. Ensuite, j'ai réfléchi à la raison pour laquelle les doubles deux-points peuvent être utilisés. Après avoir lu pendant un moment, j'ai compris ci-dessous :

x. [:,::-1] Ce code est en fait un index. Le premier A deux points (avant la virgule) sert évidemment à tout sélectionner dans la première dimension, c'est-à-dire toutes les lignes ici, suivi de deux points. de cette façon, par exemple, dans notre liste y=[1,2,3],y [:2]Le résultat est [1,2], c'est-à-dire que le premier deux-points signifie commencer par le premier. le premier deux-points après notre virgule ici commence également par le premier. Puis le deuxième deux-points Quant aux deux-points, en fait, le deuxième deux-points représente la fin, y=[1,2,3],y[::], le le résultat est [1,2,3], alors quel est le troisième paramètre ? En fait, le troisième paramètre est la taille du pas, la taille du pas ne peut pas être 0, -1 signifie l'ordre inverse, s'il est 1, cela signifie tout sélectionner, si c'est 2, cela signifie en prendre un sur deux.

Regardez le code suivant :

x=np.array([[1,2,3],[5,6,7],[7,8,9]])
print(x)
print(&#39;------------&#39;)
print(x[:,::-1])
print(&#39;------------&#39;)
print(x[:,::1])
print(&#39;------------&#39;)
print(x[:,::2])
print(&#39;------------&#39;)
print(x[:,::3])
print(&#39;------------&#39;)
print(x[:,::666666])
x=np.array([[1,2,3],[5,6,7],[7,8,9]])
print(x)
print(&#39;------------&#39;)
print(x[:,::-1])
print(&#39;------------&#39;)
print(x[:,::1])
print(&#39;------------&#39;)
print(x[:,::2])
print(&#39;------------&#39;)
print(x[:,::3])
print(&#39;------------&#39;)
print(x[:,::666666])
[[1 2 3]
 [5 6 7]
 [7 8 9]]
------------
[[3 2 1]
 [7 6 5]
 [9 8 7]]
------------
[[1 2 3]
 [5 6 7]
 [7 8 9]]
------------
[[1 3]
 [5 7]
 [7 9]]
------------
[[1]
 [5]
 [7]]
------------
[[1]
 [5]
 [7]]

Vous pouvez comprendre à partir du au-dessus du code, la raison pour laquelle x[:,::666666] dans ce qui suit est aussi grand que 66666 est de dire qu'à partir du premier, ce qui suit représente la taille du pas, et la taille du pas aussi grande que 66666 ne peut être le premier. En fait, la taille du pas. Si la longueur commence à 3, vous ne pouvez obtenir que le premier

L'utilisation ci-dessus est la même pour la liste.

Recommandations associées :


Pour les fonctions intégrées de boucle et de plage en python


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!

Déclaration:
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