Ich überprüfe Paizas Programmierkenntnisse, aber ich hatte das Gefühl, dass ich das "numpy" -Array beherrschen musste, um vom B-Rang zum A-Rang zu gelangen.
Als ich überprüfte, ob es gute Übungen gab, fand ich "100 numpy Übungen", also versuchte ich es.
100 Übungen zum Thema Numpy werden auf GitHub im Jupyter Notebook-Format veröffentlicht und können lokal heruntergeladen werden, um die Probleme zu lösen.
https://github.com/rougier/numpy-100/
Wählen Sie "Download ZIP" aus der Schaltfläche "Klonen oder Herunterladen" auf der obigen Seite, um die gesamte Datei lokal herunterzuladen.
Darin befindet sich etwas namens "100_Numpy_exercises.ipynb". Dies ist eine Sammlung von Problemen. Öffnen Sie sie also im Jupyter-Notizbuch.
Wenn Sie die erste Beschreibung lesen
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.
Es gibt. Von der ersten Zelle
100_Numpy_exercises.ipynb
%run initialise.py
Es scheint, dass Hinweise durch Hinweis (Fragennummer) und Antworten durch Antwort (Fragennummer) angezeigt werden.
Als ich versuchte, es sofort auszuführen, bekam ich die Fehlermeldung "Es gibt kein Modul namens mdutils"
Ich habe ein Modul namens mdutils mit pip install mdutils
installiert und es hat funktioniert.
Lösen wir es jetzt. Zunächst die 1. bis 10. Frage.
** "Import numpy mit dem Namen np" **
Das ist einfach, nicht wahr?
100_Numpy_exercises.ipynb-(1)answer
import numpy as np
answer(1)
** "Numpy-Version und Einstellungen anzeigen" **
100_Numpy_exercises.ipynb-(2)answer
print(np.__version__)
np.show_config()
Das Ausführungsergebnis wird wie unten gezeigt angezeigt.
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']
Was wird mit show_config () überprüft ...?
** "Erstellen Sie ein eindimensionales Array der Größe 10 und alle Elemente sind" 0 "" **
Sie können ein Array mit null Elementen mit np.zeros (size)
generieren.
100_Numpy_exercises.ipynb-(3)answer
Z = np.zeros(10)
print(Z)
Ausführungsergebnis
100_Numpy_exercises.ipynb-(3)output
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
Es ist in Ordnung.
** "Woher weiß ich die Speichergröße eines Arrays? 』**
Wenn Array ein Array ist Sie können die Anzahl der Elemente im Array mit array.size und die Anzahl der Bytes pro Element mit array.itemsize anzeigen. Daher kann die Speichergröße des gesamten Arrays mit array.size * array.itemsize berechnet werden.
100_Numpy_exercises.ipynb-(4)answer
Z = np.zeros((10,10))
print("%d bytes" % (Z.size * Z.itemsize))
Ausführungsergebnis
100_Numpy_exercises.ipynb-(4)output
800 bytes
** "Wie sehe ich die Dokumentation für die Funktion numpy add über die Befehlszeile?" 』**
In der offiziellen Antwort ``%run `python -c "import numpy; numpy.info(numpy.add)"``` Es war, aber
100_Numpy_exercises.ipynb-(5)answer
np.add?
Aber du kannst es sehen, also denke ich, dass es auch hier in Ordnung ist.
*"Die Größe ist 10, alle Elemente"0"Erstellen Sie ein eindimensionales Array. Das fünfte Element ist jedoch"1"Sein. 』*
Dies ist eine Anwendung von Problem 3. Erste np.zeros()Alles in"0"Nach dem Erstellen des Arrays das fünfte Element"1"Umschreiben an.
100_Numpy_exercises.ipynb-(6)answer
Z = np.zeros(10)
Z[4] = 1
print(Z)
Ausführungsergebnis
100_Numpy_exercises.ipynb-(6)output
[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
"Erstellen Sie ein Array mit Elementen von 10 bis 49"
Mit anderen Worten, Sie müssen nur eine Gleichheitssequenz mit einer Toleranz von 1 erstellen.np.arange()
Wird genutzt.
np.arange(start, stop, step)Es ist wie man es benutzt. Diesmal starten=10、stop=50、step=Es wird 1 sein. ※step=Wenn es 1 ist, kann der Schritt weggelassen werden.
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]
"Kehren Sie die Anordnung um(Damit das erste Element das letzte ist)』
Ist es auch eine Funktion, die die Reihenfolge des Arrays umkehrt? Als ich darüber nachdachte und mir den Hinweis ansah ...
hint: array[::-1]
Ich sehe, Sie können einfach Scheiben verwenden und die Reihenfolge umkehren.
100_Numpy_exercises.ipynb-(8)answer
Z = np.arange(1,10)
print("Z:", Z)
Z_reverse = Z[::-1]
print("Z_reverse:", Z_reverse)
Ausführungsergebnis
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]
"3 Zeilen und 3 Spalten Array(Elemente sind 0-8)Machen
Erstellen Sie zuerst ein eindimensionales Array und formen Sie es dann neu()Ich denke, es ist einfach, es mit in 3 Zeilen und 3 Spalten umzuwandeln.
100_Numpy_exercises.ipynb-(9)answer
Z = np.arange(0,9)
Z = np.Reshape (Z, (3,3)) # Z ist eine 3 × 3 2D-Array-Transformation
print(Z)
Ausführungsergebnis
100_Numpy_exercises.ipynb-(9)output
[[0 1 2]
[3 4 5]
[6 7 8]]
『[1,2,0,0,4,0]Aus dem Array"Nicht 0"Finde den Index des Elements “
np.nonzero(a) #a ist Array
Gibt den Index des Nicht-Null-Elements des Arrays a zurück.
100_Numpy_exercises.ipynb-(10)answer
Z = np.array([1,2,0,0,4,0])
print(np.nonzero(Z))
Ausführungsergebnis
100_Numpy_exercises.ipynb-(10)output
(array([0, 1, 4], dtype=int64),)
Das ist alles für jetzt. Nächstes Mal werde ich die 11. bis 20. Frage lösen.
Der nächste Artikel ist hier. Mit [100 numpy Übungen]"numpy Macht"Heben Sie den Boden an(11. bis 20. Frage)