2017-10-08 8 views
0

J'utilise le cahier jupyter. Considérez le ar = np.array([[2,3],[5,6]]).Commande pour reproduire la commande d'évaluation dans le cahier jupyter

ensuite évaluer print ar affiche

[[2 3] 
[5 6]] 

tout simplement l'évaluation ar affiche

array([[2, 3], 
     [5, 6]]) 

Ma question est: 1) Quelle commande se trouve en fait derrière cette évaluation dans le bloc-notes, comment pourrais-je le reproduis un script Python IDLE normal?

2) Que signifie la deuxième évaluation, qui est une forme de priting élaboré; est-ce que je montre le type de l'objet + son contenu? Ne devrait-il pas être ndarray au lieu de array?

Répondre

0

1) Je pense que c'est plus compliqué qu'une seule commande. Je pense que le code qui analyse quel "mode d'interactivité" (par exemple afficher tout, juste la dernière ligne [par défaut]) pour exécuter est here. Rappelez-vous que IPython est comme son propre shell REPL et qu'il y a beaucoup de différents mécanismes imbriqués comme celui-ci. Vous pouvez retracer leur code source et essayer de comprendre tous les mécanismes impliqués si vous le souhaitez, mais je ne pense pas que ce soit une solution à ligne unique.

2) On imprime la représentation de ar, repr(ar), par rapport à la forme de chaîne lisible par ar. Voir https://stackoverflow.com/a/2626364/7458681 La raison pour laquelle c'est array et non ndarray est que ce n'est pas le type de l'objet qui est en train d'être imprimé mais la fonction requise pour pouvoir recréer l'objet tel que eval(repr(ar)) == ar.