Je vérifie les compétences en programmation de Paiza, mais j'ai senti que je devais maîtriser le tableau "numpy" pour passer du rang B au rang A.
Quand j'ai vérifié s'il y avait de bons exercices, j'ai trouvé "100 exercices engourdis", alors j'ai essayé.
100 exercices liés à numpy sont publiés sur GitHub au format Jupyter Notebook, et vous pouvez les télécharger localement pour résoudre les problèmes.
https://github.com/rougier/numpy-100/
Sélectionnez "Télécharger ZIP" à partir du bouton "Cloner ou télécharger" sur la page ci-dessus pour télécharger le fichier entier localement.
Il y a quelque chose appelé "100_Numpy_exercises.ipynb" dedans. Il s'agit d'un ensemble de problèmes, alors ouvrons-le dans le bloc-notes Jupyter.
Lorsque vous lisez la première description
Run the initialize.py module, then for each question you can query the answer or an hint with hint(n) or answer(n) for n question number.
Il y a. De la première cellule
100_Numpy_exercises.ipynb
%run initialise.py
Il semble que les indices soient affichés par indice (numéro de question) et les réponses sont affichées par réponse (numéro de question).
Quand j'ai essayé de l'exécuter immédiatement, j'ai eu une erreur disant "Il n'y a pas de module appelé mdutils", donc
J'ai installé un module appelé mdutils avec pip install mdutils
et cela a fonctionné.
Résolvons-le maintenant. Tout d'abord, les 1re à 10e questions.
** "Importer numpy avec le nom np" **
C'est facile, non?
100_Numpy_exercises.ipynb-(1)answer
import numpy as np
answer(1)
Si vous l'écrivez et l'exécutez, la réponse sera affichée, alors faisons correspondre les réponses.
** "Afficher la version et les paramètres numpy" **
100_Numpy_exercises.ipynb-(2)answer
print(np.__version__)
np.show_config()
Le résultat de l'exécution s'affiche comme indiqué ci-dessous.
100_Numpy_exercises.ipynb-(2)output
1.18.1
blas_mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/ProgramData/Anaconda3\\Library\\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl', 'C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl\\include', 'C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl\\lib', 'C:/ProgramData/Anaconda3\\Library\\include']
blas_opt_info:
libraries = ['mkl_rt']
library_dirs = ['C:/ProgramData/Anaconda3\\Library\\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl', 'C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl\\include', 'C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl\\lib', 'C:/ProgramData/Anaconda3\\Library\\include']
lapack_mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/ProgramData/Anaconda3\\Library\\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl', 'C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl\\include', 'C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl\\lib', 'C:/ProgramData/Anaconda3\\Library\\include']
lapack_opt_info:
libraries = ['mkl_rt']
library_dirs = ['C:/ProgramData/Anaconda3\\Library\\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl', 'C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl\\include', 'C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.0.117\\windows\\mkl\\lib', 'C:/ProgramData/Anaconda3\\Library\\include']
À quoi sert show_config () pour vérifier ...?
** "Créer un tableau unidimensionnel de taille 10 et tous les éléments" 0 "" **
Vous pouvez générer un tableau avec zéro élément avec np.zeros (size)
.
100_Numpy_exercises.ipynb-(3)answer
Z = np.zeros(10)
print(Z)
Résultat d'exécution
100_Numpy_exercises.ipynb-(3)output
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
C'est bon.
** "Comment puis-je connaître la taille de la mémoire d'une matrice? 』**
Si le tableau est un tableau Vous pouvez voir le nombre d'éléments dans le tableau avec array.size et le nombre d'octets par élément avec array.itemsize. Par conséquent, la taille de la mémoire de l'ensemble du tableau peut être calculée par array.size * array.itemsize.
100_Numpy_exercises.ipynb-(4)answer
Z = np.zeros((10,10))
print("%d bytes" % (Z.size * Z.itemsize))
Résultat d'exécution
100_Numpy_exercises.ipynb-(4)output
800 bytes
** "Comment puis-je consulter la documentation de la fonction numpy add à partir de la ligne de commande?" 』**
Dans la réponse officielle ``%run `python -c "import numpy; numpy.info(numpy.add)"``` C'était, mais
100_Numpy_exercises.ipynb-(5)answer
np.add?
Mais vous pouvez le voir, donc je pense que c'est bien ici aussi.
*"La taille est de 10, tous les éléments"0"Créez un tableau à une dimension. Cependant, le cinquième élément est"1"Être. 』*
Ceci est une application du problème 3. Premier NP.zeros()Tout en"0"Après avoir fait le tableau de, le cinquième élément"1"Réécrivez dans.
100_Numpy_exercises.ipynb-(6)answer
Z = np.zeros(10)
Z[4] = 1
print(Z)
Résultat d'exécution
100_Numpy_exercises.ipynb-(6)output
[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
"Créer un tableau avec des éléments de 10 à 49"
En d'autres termes, il vous suffit de créer une séquence d'égalité avec une tolérance de 1.np.arange()
Est utilisé.
np.arange(start, stop, step)C'est comment utiliser. Cette fois commencer=10、stop=50、step=Ce sera 1. ※step=S'il vaut 1, l'étape peut être omise.
100_Numpy_exercises.ipynb-(7)answer
Z = np.arange(10,50,1)
print(Z)
100_Numpy_exercises.ipynb-(7)output
[10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49]
"Inverser l'arrangement(Pour que le premier élément soit le dernier)』
Est-ce aussi une fonction qui inverse l'ordre du tableau? Quand j'y ai pensé et regardé un indice ...
hint: array[::-1]
Je vois, vous pouvez simplement utiliser des tranches et inverser l'ordre.
100_Numpy_exercises.ipynb-(8)answer
Z = np.arange(1,10)
print("Z:", Z)
Z_reverse = Z[::-1]
print("Z_reverse:", Z_reverse)
Résultat d'exécution
100_Numpy_exercises.ipynb-(8)output
Z: [1 2 3 4 5 6 7 8 9]
Z_reverse: [9 8 7 6 5 4 3 2 1]
"Tableau 3 lignes et 3 colonnes(Les éléments sont compris entre 0 et 8)Faire
Créez d'abord un tableau unidimensionnel, puis remodelez()Je pense qu'il est facile de le transformer en 3 lignes et 3 colonnes en utilisant.
100_Numpy_exercises.ipynb-(9)answer
Z = np.arange(0,9)
Z = np.reshape (Z, (3,3)) # Z est une transformation de tableau 2D 3 × 3
print(Z)
Résultat d'exécution
100_Numpy_exercises.ipynb-(9)output
[[0 1 2]
[3 4 5]
[6 7 8]]
『[1,2,0,0,4,0]À partir du tableau"Pas 0"Trouvez l'index de l'élément "
np.nonzero(a) #un est un tableau
Renvoie l'index de l'élément non nul du tableau a.
100_Numpy_exercises.ipynb-(10)answer
Z = np.array([1,2,0,0,4,0])
print(np.nonzero(Z))
Résultat d'exécution
100_Numpy_exercises.ipynb-(10)output
(array([0, 1, 4], dtype=int64),)
C'est tout pour le moment. La prochaine fois, je répondrai aux 11e à 20e questions.
Le prochain article est ici. Avec [100 exercices numpy]"puissance engourdie"Soulevez le fond(11e à 20e questions)