Pouvez-vous m'aider s'il vous plaît corriger le code indiqué ci-dessous?
entrée: p>
sortie: p> [code] p> r code>: la matrice de notation, une matrice de forme NUMPY de la forme M par n. Si la note est inconnue, le nombre n'est pas. P> B code>: la matrice de masquage binaire, une matrice de forme numpie flottante de forme M par n. p>
r [i, j] code> n'est pas manquant, b [i, j] = 1 code> li> li>
r [i, j] code> est manquant (aucun), b [i, j] = 0 code> li> li>
ul>
3 Réponses :
Si r code> est en effet un tableau à point flottant, il peut contenir des éléments nan code>, pas Aucun code>. Vous n'avez pas besoin d'une boucle pour créer un masque d'un tableau NUMPY: B = ~np.isnan(R)
Bonjour, il dit maintenant ufunc: 'isnan' non pris en charge pour les types d'entrée. Le boîtier de test pour R est un tableau NUMPY avec 'Aucun' comme élément de certains endroits et de certains nombres dans les autres endroits.
@Vishawv. Quel est le dttype?
[code]
Voici quelques directives pour Comment puis-je écrire une bonne réponse? . Cette réponse fournie peut être correcte, mais elle pourrait bénéficier d'une explication. Les réponses de code seulement ne sont pas considérées comme des réponses «bonnes». De Examiner .
In [177]: R.astype(float)
Out[177]:
array([[ 4., 5., 3., nan, 1.],
[nan, 2., 3., 2., 3.],
[ 5., nan, 1., 2., nan]])
In [178]: np.isnan(R.astype(float))
Out[178]:
array([[False, False, False, True, False],
[ True, False, False, False, False],
[False, True, False, False, True]])
In [179]: np.where(np.isnan(R.astype(float)),0,1)
Out[179]:
array([[1, 1, 1, 0, 1],
[0, 1, 1, 1, 1],
[1, 0, 1, 1, 0]])
@hapulj, oui cela fait le sens total et fonctionne parfaitement bien. Merci.
Les numéros manquants ne sont ni nan?
Certains des éléments de la matrice numpy sont «aucun»
@Vishawv. Cela signifie que vous n'avez pas de matrice flottante. S'il vous plaît poster un exemple reproductible.
@Madphysiciste. Ici, bro, r = np.array ([[4., 5., 3., Aucun, 1.], [Aucun, 2., 3., 2., 3.], [5., Aucun, 1. , 2., Aucun]])
Bonjour, j'ai résolu le problème. Merci de votre aide.