[PYTHON] Augmentez la "puissance numpy" avec [100 exercices numpy] (1re à 10e questions)

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.

  1. Import the numpy package under the name np (★☆☆)

** "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.

  1. Print the numpy version and the configuration (★☆☆)

** "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 ...?

  1. Create a null vector of size 10 (★☆☆)

** "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.

  1. How to find the memory size of any array (★☆☆)

** "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
  1. How to get the documentation of the numpy add function from the command line? (★☆☆)

** "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.

6. Create a null vector of size 10 but the fifth value which is 1 (★☆☆)

*"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.]

7. Create a vector with values ranging from 10 to 49 (★☆☆)

"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]

8. Reverse a vector (first element becomes last) (★☆☆)

"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]

9. Create a 3x3 matrix with values ranging from 0 to 8 (★☆☆)

"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]]

10. Find indices of non-zero elements from [1,2,0,0,4,0](★☆☆)

『[1,2,0,0,4,0]À partir du tableau"Pas 0"Trouvez l'index de l'élément "

np.nonzero(a) #un est un tableauRenvoie 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)

Recommended Posts

Augmentez la "puissance numpy" avec [100 exercices numpy] (1re à 10e questions)
Augmentez la "puissance numpy" avec [100 exercices numpy] (11e à 20e questions)
Comment mettre hors tension de Linux sur Ultra96-V2
Ajouter des lignes à un tableau vide avec numpy