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. ]]]
