← جميع الاختبارات العامة
ابدأ الاختبار (كضيف أو بحساب)
Python — NumPy : tableaux & calcul vectoriel
بواسطة Jude · 23/05/2026 · 116 مشاهدة · مشاركة
Création de
ndarray, dtype, shape, broadcasting, indexation avancée, agrégations et performance. 20 questions.
20
الأسئلة
🇫🇷 Français
اللغة
متوسط
الصعوبة
أسئلة الاختبار
-
1. Quelle est la principale différence entre une
listPython et unnumpy.ndarray?- Aucune, ce sont des synonymes
- Le
ndarrayest typé, contigu en mémoire, et permet le calcul vectoriel ; la liste est hétérogène et plus lente - Les listes sont plus rapides pour le calcul numérique
- Le
ndarrayest une sous-classe delist
-
2. Que vaut
a.shape?import numpy as np a = np.array([[1, 2, 3], [4, 5, 6]]) print(a.shape)- (2, 3)
- (3, 2)
- (6,)
- (2, 3, 1)
-
3. Que produit ce code ?
a = np.arange(6).reshape(2, 3) print(a.sum(axis=0))- [3 5 7]
- [3 12]
- [0 1 2 3 4 5]
- 15
-
4. Quelle est la sortie de ce broadcasting ?
a = np.array([[1], [2], [3]]) b = np.array([10, 20, 30]) print((a + b).shape)- (3,)
- (3, 3)
- (1, 3)
- ValueError
-
5. Quel est le
dtypepar défaut denp.array([1, 2, 3])sur un système 64 bits ?- int8
- int32
- int64
- float64
-
6. Que vaut
aaprès cette opération ?a = np.array([1, 2, 3, 4, 5]) b = a[1:4] b[0] = 99 print(a)- [1 2 3 4 5]
- [1 99 3 4 5]
- [1 99 99 99 5]
- Erreur
-
7. Que produit cette indexation booléenne ?
a = np.array([10, 20, 30, 40]) print(a[a > 15])- [10 20 30 40]
- [20 30 40]
- [False True True True]
- Erreur
-
8. Quelle est la différence entre
np.dot(a, b)eta * bpour deux matrices ?- Aucune
np.dot= produit matriciel ;*= produit élément par élément (Hadamard)*est plus rapidenp.dotest obsolète
-
9. Que renvoie ce code ?
a = np.zeros((2, 3), dtype=np.int32) print(a.dtype, a.nbytes)- int32 12
- int32 24
- int64 24
- float64 48
-
10. Quelle fonction génère 100 valeurs régulièrement espacées entre 0 et 1 (bornes incluses) ?
np.arange(0, 1, 100)np.linspace(0, 1, 100)np.range(0, 1, 100)np.logspace(0, 1, 100)
-
11. Que renvoie cette opération ?
a = np.array([1, 2, np.nan, 4]) print(a.sum(), np.nansum(a))- 7.0 7.0
- nan 7.0
- 7.0 nan
- Erreur
-
12. Comment changer la forme d'un tableau de (12,) à (3, 4) sans copier les données ?
a.reshape(3, 4)a.resize(3, 4)uniquementnp.copy(a).reshape(3, 4)- Impossible sans copie
-
13. Quelle est la sortie ?
a = np.array([[1, 2], [3, 4]]) print(a.T)- [[1 2] [3 4]]
- [[1 3] [2 4]]
- [[4 3] [2 1]]
- Erreur
-
14. Quelle est la complexité asymptotique d'un produit matriciel
(n, n) @ (n, n)dans NumPy standard ?- O(n)
- O(n²)
- O(n³)
- O(n log n)
-
15. Que produit ce code ?
rng = np.random.default_rng(42) print(rng.integers(0, 10, size=3))- Trois entiers aléatoires reproductibles dans [0, 10)
- Trois flottants entre 0 et 10
- Trois entiers reproductibles dans [0, 10] (borne incluse)
- Erreur :
default_rngn'existe pas
-
16. Quelle expression remplace les valeurs négatives d'un tableau par 0 ?
a[a < 0] = 0a.replace(< 0, 0)a.zero_negatives()np.abs(a)
-
17. Quelle est la différence entre
a.flatten()eta.ravel()?- Aucune
flattenrenvoie toujours une copie ;ravelrenvoie une vue quand possibleravelest plus lentflattenne fonctionne qu'en 1D
-
18. Que vaut
r?a = np.array([[1, 2, 3], [4, 5, 6]]) r = a[:, [2, 0]] print(r)- [[3 1] [6 4]]
- [[1 3] [4 6]]
- [[2 0] [5 3]]
- Erreur
-
19. Quelle fonction lit/écrit efficacement un tableau au format binaire NumPy natif ?
np.save/np.loadpickle.dump/pickle.loadjson.dumpopen(..., "wb")+str(a)
-
20. Pourquoi vectoriser plutôt que boucler en Python pour un calcul élément par élément ?
- Aucune raison
- Les opérations vectorisées s'exécutent en C/SIMD au lieu de la boucle Python interprétée, accélérant typiquement de 10× à 100×
- Les boucles Python sont plus rapides en NumPy
- Vectoriser consomme plus de mémoire et est toujours plus lent