Skip to content

Dans NumPy, les fonctions ๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() et ๐งโ€Œ๐ฉโ€Œ.๐ฅโ€Œ๐ขโ€Œ๐งโ€Œ๐ฌโ€Œ๐ฉโ€Œ๐šโ€Œ๐œโ€Œ๐žโ€Œ() gรฉnรจrent un tableau ( ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ซโ€Œ๐ซโ€Œ๐šโ€Œ๐ฒโ€Œ ) de valeurs correspondantes spatiales. Vous pouvez prรฉciser l’intervalle dans ๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() et le nombre de valeurs dans ๐งโ€Œ๐ฉโ€Œ.๐ฅโ€Œ๐ขโ€Œ๐งโ€Œ๐ฌโ€Œ๐ฉโ€Œ๐šโ€Œ๐œโ€Œ๐žโ€Œ() .

La version de NumPy utilisรฉe dans cet article est la suivante. Notez que les fonctionnalitรฉs peuvent varier selon les versions.

import numpy as np print(np.__version__) # 1.26.1 

Comment utiliser ๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ()

๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() est similaire ร  la fonction intรฉgrรฉe ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() de Python . Consultez l’article suivant pour ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() .

Comme ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() , ๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() gรฉnรจre un ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ซโ€Œ๐ซโ€Œ๐šโ€Œ๐ฒโ€Œ avec des valeurs espacรฉes identiques selon les arguments spรฉcifiรฉs :

  • ๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ(๐ฌโ€Œ๐ญโ€Œ๐จโ€Œ๐ฉโ€Œ)
    • 0 <= ๐งโ€Œ < ๐ฌโ€Œ๐ญโ€Œ๐จโ€Œ๐ฉโ€Œ avec un intervalle de 1
  • ๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ ๐ž๐งโ€Œ(๐ฌ๐จ๐ฎ๐ญ, ๐ฌ๐จ๐ฎ๐ญ)
    • ๐ฌโ€Œ๐ญโ€Œ๐šโ€Œ๐ซโ€Œ๐ญโ€Œ <= ๐งโ€Œ < ๐ฌโ€Œ๐ญโ€Œ๐จโ€Œ๐ฉโ€Œ avec un intervalle de 1
  • ๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ ๐ž๐งโ€Œ(๐ฌ๐จ๐ฎ๐ญ, ๐ฌ๐จ๐ฎ๐ญ, ๐ฌ๐จ๐ฎ๐ญ)
    • ๐ฌโ€Œ๐ญโ€Œ๐šโ€Œ๐ซโ€Œ๐ญโ€Œ <= ๐งโ€Œ < ๐ฌโ€Œ๐ญโ€Œ๐จโ€Œ๐ฉโ€Œ avec un intervalle de ๐ฌโ€Œ๐ญโ€Œ๐žโ€Œ๐ฉโ€Œ
print(np.arange(3)) # [0 1 2] print(np.arange(3, 10)) # [3 4 5 6 7 8 9] print(np.arange(3, 10, 2)) # [3 5 7 9] 

Contrairement ร  ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() , les nombres ร  virgule flottante ( ๐Ÿโ€Œ๐ฅโ€Œ๐จโ€Œ๐šโ€Œ๐ญโ€Œ ) peuvent รชtre spรฉcifiรฉs comme arguments dans ๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() .

print(np.arange(0.3, 1.0, 0.2)) # [0.3 0.5 0.7 0.9] 

Comme ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() , ๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() accepte les valeurs nรฉgatives. De plus, elle gรฉnรจre un ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ซโ€Œ๐ซโ€Œ๐šโ€Œ๐ฒโ€Œ vide lorsqu’il n’y a aucune valeur correspondante.

print(np.arange(-3, 3)) # [-3 -2 -1 0 1 2] print(np.arange(10, 3)) # [] print(np.arange(10, 3, -2)) # [10 8 6 4] 

Bien que le type de donnรฉes ( ๐โ€Œ๐ญโ€Œ๐ฒโ€Œ๐ฉโ€Œ๐žโ€Œ ) soit automatiquement sรฉlectionnรฉ, il peut รชtre spรฉcifiรฉ manuellement via l’argument ๐โ€Œ๐ญโ€Œ๐ฒโ€Œ๐ฉโ€Œ๐žโ€Œ .

a = np.arange(3, 10) print(a) # [3 4 5 6 7 8 9] print(a.dtype) # int64 a_float = np.arange(3, 10, dtype=float) print(a_float) # [3. 4. 5. 6. 7. 8. 9.] print(a_float.dtype) # float64 

Pour plus de dรฉtails sur les types de donnรฉes dans NumPy, reportez-vous ร  l’article suivant.

Comment utiliser ๐งโ€Œ๐ฉโ€Œ.๐ฅโ€Œ๐ขโ€Œ๐งโ€Œ๐ฌโ€Œ๐ฉโ€Œ๐šโ€Œ๐œโ€Œ๐žโ€Œ()

Utilisation de la base

Avec ๐งโ€Œ๐ฉโ€Œ.๐ฅโ€Œ๐ขโ€Œ๐งโ€Œ๐ฌโ€Œ๐ฉโ€Œ๐šโ€Œ๐œโ€Œ๐žโ€Œ() , vous pouvez prรฉciser le nombre d’รฉlรฉments au lieu de l’intervalle.

Spรฉcifiez la valeur de dรฉpart dans le premier argument ๐ฌโ€Œ๐ญโ€Œ๐šโ€Œ๐ซโ€Œ๐ญโ€Œ , la valeur de fin dans le deuxiรจme ๐ฌโ€Œ๐ญโ€Œ๐จโ€Œ๐ฉโ€Œ et le nombre d’รฉlรฉments dans le troisiรจme ๐งโ€Œ๐ฎโ€Œ๐ฆโ€Œ . L’intervalle est calculรฉ automatiquement en fonction de ces valeurs.

print(np.linspace(0, 10, 3)) # [ 0. 5. 10.] print(np.linspace(0, 10, 4)) # [ 0. 3.33333333 6.66666667 10. ] print(np.linspace(0, 10, 5)) # [ 0. 2.5 5. 7.5 10. ] 

Il gรจre รฉgalement le cas oรน ๐ฌโ€Œ๐ญโ€Œ๐šโ€Œ๐ซโ€Œ๐ญโ€Œ > ๐ฌโ€Œ๐ญโ€Œ๐จโ€Œ๐ฉโ€Œ de maniรจre appropriรฉe.

print(np.linspace(10, 0, 5)) # [10. 7.5 5. 2.5 0. ] 

Le type de donnรฉes ( ๐โ€Œ๐ญโ€Œ๐ฒโ€Œ๐ฉโ€Œ๐žโ€Œ ) du tableau gรฉnรฉrรฉ peut รชtre spรฉcifiรฉ avec l’argument ๐โ€Œ๐ญโ€Œ๐ฒโ€Œ๐ฉโ€Œ๐žโ€Œ . Notez que par dรฉfaut, mรชme si un tableau d’entiers est gรฉnรฉrรฉ, il devient des nombres ร  virgule flottante ( ๐Ÿโ€Œ๐ฅโ€Œ๐จโ€Œ๐šโ€Œ๐ญโ€Œ ).

a = np.linspace(0, 10, 3) print(a) # [ 0. 5. 10.] print(a.dtype) # float64 a_int = np.linspace(0, 10, 3, dtype=int) print(a_int) # [ 0 5 10] print(a_int.dtype) # int64 

Il faut prรฉciser s’il faut inclure

Par dรฉfaut, ๐ฌโ€Œ๐ญโ€Œ๐จโ€Œ๐ฉโ€Œ est inclus dans le rรฉsultat ; dรฉfinir ๐žโ€Œ๐งโ€Œ๐โ€Œ๐ฉโ€Œ๐จโ€Œ๐ขโ€Œ๐งโ€Œ๐ญโ€Œ sur F๐šโ€Œ๐ฅโ€Œ๐ฌโ€Œ๐žโ€Œ l’exclut.

print(np.linspace(0, 10, 5)) # [ 0. 2.5 5. 7.5 10. ] print(np.linspace(0, 10, 5, endpoint=False)) # [0. 2. 4. 6. 8.] 

La relation entre l’argument ๐žโ€Œ๐งโ€Œ๐โ€Œ๐ฉโ€Œ๐จโ€Œ๐ขโ€Œ๐งโ€Œ๐ญโ€Œ et l’intervalle ( ๐ฌโ€Œ๐ญโ€Œ๐žโ€Œ๐ฉโ€Œ ) est la suivante :

  • ๐žโ€Œ๐งโ€Œ๐โ€Œ๐ฉโ€Œ๐จโ€Œ๐ขโ€Œ๐งโ€Œ๐ญโ€Œ=T๐ซโ€Œ๐ฎโ€Œ๐žโ€Œ (par dรฉfaut)
    • ๐ฌ๐จ๐ฎ๐ญ๐ž๐ง๐ญ = (๐ฌ๐จ๐ฎ๐ญ๐ž๐ง๐ญ – ๐ฌ๐จ๐ฎ๐ญ๐ž๐ง๐ญ) / (๐ง๐ž๐ฎ๐ญ – 1)
  • ๐žโ€Œ๐งโ€Œ๐โ€Œ๐ฉโ€Œ๐จโ€Œ๐ขโ€Œ๐งโ€Œ๐ญโ€Œ=F๐š๐ฅโ€Œ๐ฌ๐žโ€Œ
    • ๐ฌ๐จ๐ฎ๐ญ๐ž๐ง๐ญ = (๐ฌ๐จ๐ฎ๐ญ๐ž – ๐ฌ๐จ๐ฎ๐ญ๐ž) / ๐ง๐ž๐ฎ๐ญ๐ž

Obtenez l’intervalle : ๐ซโ€Œ๐žโ€Œ๐ญโ€Œ๐ฌโ€Œ๐ญโ€Œ๐žโ€Œ๐ฉโ€Œ

La dรฉfinition de l’argument ๐ซโ€Œ๐žโ€Œ๐ญโ€Œ๐ฌโ€Œ๐ญโ€Œ๐žโ€Œ๐ฉโ€Œ sur T๐ซโ€Œ๐ฎโ€Œ๐žโ€Œ renvoie un tuple (๐ซโ€Œ๐žโ€Œ๐ฌโ€Œ๐ฎโ€Œ๐ฅโ€Œ๐ญโ€Œ๐ขโ€Œ๐งโ€Œ๐ โ€Œ_๐งโ€Œ๐โ€Œ๐šโ€Œ๐ซโ€Œ๐ซโ€Œ๐šโ€Œ๐ฒโ€Œ, ๐ฌโ€Œ๐ญโ€Œ๐žโ€Œ๐ฉโ€Œ) , oรน ๐ฌโ€Œ๐ญโ€Œ๐žโ€Œ๐ฉโ€Œ est l’intervalle.

result = np.linspace(0, 10, 5, retstep=True) print(result) # (array([ 0. , 2.5, 5. , 7.5, 10. ]), 2.5) print(type(result)) # <class 'tuple'> print(result[0]) # [ 0. 2.5 5. 7.5 10. ] print(result[1]) # 2.5 

Si vous souhaitez uniquement vรฉrifier ๐ฌโ€Œ๐ญโ€Œ๐žโ€Œ๐ฉโ€Œ , vous pouvez obtenir le deuxiรจme รฉlรฉment par indexation.

print(np.linspace(0, 10, 5, retstep=True)[1]) # 2.5 print(np.linspace(0, 10, 5, retstep=True, endpoint=False)[1]) # 2.0 

Convertir en ordre inverse

La gรฉnรฉration d’un tableau d’ordre inverse avec ๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() nรฉcessite des arguments pertinents, ce qui peut รชtre fastidieux.

print(np.arange(3, 10, 2)) # [3 5 7 9] print(np.arange(9, 2, -2)) # [9 7 5 3] 

L’utilisation de la tranche [::-1] ou ๐งโ€Œ๐ฉโ€Œ.๐Ÿโ€Œ๐ฅโ€Œ๐ขโ€Œ๐ฉโ€Œ() permet d’inverser facilement le rรฉsultat.

print(np.arange(3, 10, 2)[::-1]) # [9 7 5 3] print(np.flip(np.arange(3, 10, 2))) # [9 7 5 3] 

Dans le cas de ๐งโ€Œ๐ฉโ€Œ.๐ฅโ€Œ๐ขโ€Œ๐งโ€Œ๐ฌโ€Œ๐ฉโ€Œ๐šโ€Œ๐œโ€Œ๐žโ€Œ() , le simple fait d’รฉchanger le premier argument ( ๐ฌโ€Œ๐ญโ€Œ๐šโ€Œ๐ซโ€Œ๐ญโ€Œ ) avec le second ( ๐ฌโ€Œ๐ญโ€Œ๐จโ€Œ๐ฉโ€Œ ) peut facilement inverser l’ordre si ๐žโ€Œ๐งโ€Œ๐โ€Œ๐ฉโ€Œ๐จโ€Œ๐ขโ€Œ๐งโ€Œ๐ญโ€Œ=T๐ซโ€Œ๐ฎโ€Œ๐žโ€Œ . Le mรชme rรฉsultat peut รชtre obtenu en utilisant la tranche [::-1] ou ๐งโ€Œ๐ฉโ€Œ.๐Ÿโ€Œ๐ฅโ€Œ๐ขโ€Œ๐ฉโ€Œ() .

print(np.linspace(0, 10, 5)) # [ 0. 2.5 5. 7.5 10. ] print(np.linspace(10, 0, 5)) # [10. 7.5 5. 2.5 0. ] print(np.linspace(0, 10, 5)[::-1]) # [10. 7.5 5. 2.5 0. ] print(np.flip(np.linspace(0, 10, 5))) # [10. 7.5 5. 2.5 0. ] 

Si ๐žโ€Œ๐งโ€Œ๐โ€Œ๐ฉโ€Œ๐จโ€Œ๐ขโ€Œ๐งโ€Œ๐ญโ€Œ=F๐šโ€Œ๐ฅโ€Œ๐ฌโ€Œ๐žโ€Œ , partagez le premier argument ( ๐ฌโ€Œ๐ญโ€Œ๐šโ€Œ๐ซโ€Œ๐ญโ€Œ ) avec le second ( ๐ฌโ€Œ๐ญโ€Œ๐จโ€Œ๐ฉโ€Œ ) n’inverse pas l’ordre. Utilisez la tranche [::-1] ou ๐งโ€Œ๐ฉโ€Œ.๐Ÿโ€Œ๐ฅโ€Œ๐ขโ€Œ๐ฉโ€Œ() facilite les choses.

print(np.linspace(0, 10, 5, endpoint=False)) # [0. 2. 4. 6. 8.] print(np.linspace(10, 0, 5, endpoint=False)) # [10. 8. 6. 4. 2.] print(np.linspace(0, 10, 5, endpoint=False)[::-1]) # [8. 6. 4. 2. 0.] print(np.flip(np.linspace(0, 10, 5, endpoint=False))) # [8. 6. 4. 2. 0.] 

Convertir en tableaux multidimensionnels

Pour crรฉer des tableaux multidimensionnels, utilisez la mรฉthode ๐ซโ€Œ๐žโ€Œ๐ฌโ€Œ๐กโ€Œ๐šโ€Œ๐ฉโ€Œ๐žโ€Œ() , car ni ๐งโ€Œ๐ฉโ€Œ.๐šโ€Œ๐ซโ€Œ๐šโ€Œ๐งโ€Œ๐ โ€Œ๐žโ€Œ() ni ๐งโ€Œ๐ฉโ€Œ.๐ฅโ€Œ๐ขโ€Œ๐งโ€Œ๐ฌโ€Œ๐ฉโ€Œ๐šโ€Œ๐œโ€Œ๐žโ€Œ() n’ont d’argument pour accรฉlรฉrer la forme.

print(np.arange(12).reshape(3, 4)) # [[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] print(np.arange(24).reshape(2, 3, 4)) # [[[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] #  # [[12 13 14 15] # [16 17 18 19] # [20 21 22 23]]] 

print(np.linspace(0, 10, 12).reshape(3, 4)) # [[ 0. 0.90909091 1.81818182 2.72727273] # [ 3.63636364 4.54545455 5.45454545 6.36363636] # [ 7.27272727 8.18181818 9.09090909 10. ]] print(np.linspace(0, 10, 24).reshape(2, 3, 4)) # [[[ 0. 0.43478261 0.86956522 1.30434783] # [ 1.73913043 2.17391304 2.60869565 3.04347826] # [ 3.47826087 3.91304348 4.34782609 4.7826087 ]] #  # [[ 5.2173913 5.65217391 6.08695652 6.52173913] # [ 6.95652174 7.39130435 7.82608696 8.26086957] # [ 8.69565217 9.13043478 9.56521739 10. ]]]