PSI INFO CCP 1 2019.extrait
PSI INFO CCP 1 2019.extrait
PSI INFO CCP 1 2019.extrait
Indications
Partie II
1 Utiliser une requête SELECT avec un test d’égalité entre un champ et une chaîne
de caractères.
2 Joindre les deux tables en identifiant la clé primaire id et le champ idpatient.
3 On peut compter un nombre d’éléments dans une colonne à l’aide de la fonction
d’agrégation COUNT.
6 Si on souhaite utiliser la fonction append permettant d’ajouter des éléments à la
fin d’une liste, il est préférable de renvoyer une liste de listes de tableaux Numpy.
7 Attention au décalage d’indice : le i-ième attribut est ainsi représenté dans les
colonnes et lignes d’indice i − 1 de la matrice de diagrammes.
Partie III
9 Trouver une opération affine permettant de passer de X à Xnorm .
11 On pourra charger la fonction sqrt de la bibliothèque math.
14 Attention, l’énoncé n’est pas cohérent avec la spécification qu’il a donnée de la
fonction tri qui était censée trier une liste de listes à deux éléments où le second
élément de chaque liste est la valeur de l’état, et non l’indice du patient dans la
liste data.
15 Essayer de faire apparaître les notions de taux de réussite, de faux positifs et de
faux négatifs.
17 Pour calculer la variance, profiter de la fonction moyenne juste écrite.
18 Utiliser la fonction separationParGroupe, ainsi que les fonctions de la ques-
tion 17.
19 L’énoncé est imprécis : il s’agit plutôt de calculer la valeur que prend en a la
fonction de densité de la loi gaussienne de moyenne moy et de variance v.
20 On peut estimer le terme Pr(Y = yj ) à l’aide de la proportion de patients d’état yj .
23 Comparer les taux de réussite, ainsi que les taux de faux positifs et de faux
négatifs.
4 La gestion des tableaux Numpy de grande taille est plus efficace que celle des listes
Python. Par exemple, le parcours de tableaux est plus rapide en Numpy. La biblio-
thèque Numpy contient également de nombreuses fonctions vectorielles (somme, pro-
duit matrice/colonne, etc.) implémentées, en particulier pour les tableaux de grandes
tailles, bien plus rapides que celles qu’on pourrait obtenir via un parcours de listes
(ou de listes de listes). Pour résumer,
Une raison principale de l’efficacité de Numpy, vis-à-vis des listes Python, est
l’hétérogénéité possible des listes Python : une même liste peut contenir dans
différentes cases des entiers, des nombres à virgule flottante, des chaînes de
caractères, etc. Cela force Python à stocker ces listes à l’aide de pointeurs. Au
contraire, la bibliothèque Numpy force les tableaux à ne contenir qu’un seul
type d’éléments, que ce soit des entiers ou des nombres à virgule flottante :
chaque élément est donc stocké dans un même nombre de bits, ce qui permet
à Numpy d’utiliser des blocs consécutifs en mémoire, évitant le stockage de
pointeurs. Un tableau Numpy prend donc moins d’espace mémoire que le
même tableau géré par une liste Python, et il est plus facile à parcourir
efficacement.
5 Le tableau data est une matrice contenant N = 100 000 lignes et n = 6 colonnes,
chaque case contenant un réel codé sur 32 bits, c’est-à-dire 4 octets. Ainsi, il requiert
au total N × n × 4 octets de mémoire, c’est-à-dire 2,4 Mo.
Le tableau etat est un vecteur de taille N contenant des valeurs entières codées
sur 8 bits, c’est-à-dire 1 octet. Ainsi, la quantité de mémoire nécessaire pour le stocker
est de N octets, c’est-à-dire 0,1 Mo. Au total,
Stocker les tableaux data et etat avec N = 100 000 patients requiert 2,5 Mo.