Wiskunde behandelt een enorm aantal concepten die erg belangrijk zijn, maar tegelijkertijd ook complex en tijdrovend. Python biedt echter de volwaardige SciPy-bibliotheek die dit probleem voor ons oplost. In deze SciPy-tutorial leert u hoe u deze bibliotheek kunt gebruiken, samen met een paar functies en hun voorbeelden.
Voordat u verder gaat, bekijkt u eerst alle onderwerpen die in dit artikel zijn besproken:
- Wat is SciPy?
- NumPy vs SciPy
- Subpackages in SciPy
- Basisfuncties
- Speciale functies
- Integratiefuncties
- Optimalisatiefuncties
- Fourier Transform-functies
- Signaal Processing Functions
- Linear Algebra
- Sparse Eigenvalues
- Spatial Data Structures and Algorithms
- Multidimensional Image Processing Functions
- File IO
Dus laten we maar eens beginnen. š
SciPy is een open-source Python bibliotheek die wordt gebruikt om wetenschappelijke en wiskundige problemen op te lossen. Het is gebouwd op de NumPy extensie en stelt de gebruiker in staat om gegevens te manipuleren en te visualiseren met een breed scala aan high-level commando’s. Zoals eerder vermeld, bouwt SciPy voort op NumPy en daarom is het niet nodig om NumPy te importeren als je SciPy importeert.
NumPy vs SciPy
Zowel NumPy als SciPy zijn Python bibliotheken die worden gebruikt voor wiskundige en numerieke analyse. NumPy bevat array-gegevens en basisbewerkingen zoals sorteren, indexeren, enz., terwijl SciPy alle numerieke code bevat. Hoewel NumPy een aantal functies biedt die kunnen helpen bij het oplossen van lineaire algebra, Fourier transformaties, enz., is SciPy de bibliotheek die eigenlijk volledig uitgeruste versies van deze functies bevat, samen met vele andere. Als u echter wetenschappelijke analyses uitvoert met Python, moet u zowel NumPy als SciPy installeren, aangezien SciPy voortbouwt op NumPy.
Subpackages in SciPy:
SciPy heeft een aantal subpackages voor diverse wetenschappelijke berekeningen die in de volgende tabel zijn weergegeven:
Maar voor een gedetailleerde beschrijving kunt u de officiƫle documentatie volgen.
Deze pakketten moeten uitsluitend worden geĆÆmporteerd voordat u ze kunt gebruiken. Bijvoorbeeld:
from scipy import cluster
Voordat we elk van deze functies in detail bekijken, kijken we eerst naar de functies die zowel in NumPy als in SciPy voorkomen.
Interactie met NumPy:
SciPy bouwt voort op NumPy en daarom kunt u gebruik maken van NumPy-functies zelf om met arrays om te gaan. Om meer over deze functies te weten te komen, kun je simpelweg gebruik maken van de functies help(), info() of source().
help():
Om informatie over een functie te krijgen, kun je gebruik maken van de functie help(). Er zijn twee manieren waarop deze functie kan worden gebruikt:
- zonder parameters
- met parameters
Hier volgt een voorbeeld dat beide bovenstaande methoden laat zien:
from scipy import cluster
help(cluster) #with parameter
help() #without parameter
Wanneer u de bovenstaande code uitvoert, geeft de eerste help() de informatie over de clustersubmodule. De tweede help() vraagt de gebruiker om de naam van een module, sleutelwoord, enz. in te voeren waarvoor de gebruiker informatie wenst te zoeken. Om de uitvoering van deze functie te stoppen, typt u simpelweg ‘quit’ en drukt u op enter.
info():
Deze functie retourneert informatie over de gewenste functies, modules, etc.
scipy.info(cluster)
source():
De broncode wordt alleen geretourneerd voor objecten die in Python zijn geschreven. Deze functie retourneert geen nuttige informatie indien de methoden of objecten zijn geschreven in een andere taal zoals C. Indien u echter gebruik wilt maken van deze functie, kunt u dat als volgt doen:
scipy.source(cluster)
Speciale functies:
SciPy biedt een aantal speciale functies die worden gebruikt in de wiskundige natuurkunde, zoals elliptische, gemaksfuncties, gamma, beta, enz. Om te zoeken naar alle functies, kunt u gebruik maken van help() functie zoals eerder beschreven.
Exponentiƫle en Trigonometrische Functies:
SciPy’s Special Function pakket biedt een aantal functies waarmee je exponenten kunt vinden en trigonometrische problemen kunt oplossen.
Bedenk het volgende voorbeeld:
EXAMPLE:
from scipy import special
a = special.exp10(3)
print(a)
b = special.exp2(3)
print(b)
c = special.sindg(90)
print(c)
d = special.cosdg(45)
print(d)
OUTPUT:
1000,0
8,0
1,0
0.7071067811865475
Er zijn nog veel meer functies aanwezig in het speciale functies pakket van SciPy die u zelf kunt proberen.
Integratie Functies:
SciPy biedt een aantal functies om integralen op te lossen. Variƫrend van gewone differentiaalintegrator tot het gebruik van trapeziumregels om integralen te berekenen, SciPy is een opslagplaats van functies om alle soorten integralenproblemen op te lossen.
Algemene integratie:
SiPy biedt een functie met de naam quad om de integraal van een functie met Ć©Ć©n variabele te berekenen. De grenzen kunnen ( ) zijn om oneindige grenzen aan te geven. De syntaxis van de functie quad() is als volgt:
SYNTAX:
quad(func, a, b, args=(), full_output=0, epsabs=1,49e-08, epsrel=1.49e-08, limit=50, points=None, weight=None, wvar=None, wopts=None, maxp1=50, limlst=50)
Hier wordt de functie geĆÆntegreerd tussen de grenzen a en b (kan ook oneindig zijn).
EXAMPLE:
from scipy import special
from scipy import integrate
a= lambda x:special.exp10(x)
b = scipy.integrate.quad(a, 0, 1)
print(b)
In het bovenstaande voorbeeld wordt de functie ‘a’ geĆ«valueerd tussen de grenzen 0, 1. Wanneer deze code wordt uitgevoerd, ziet u de volgende uitvoer.
OUTPUT:
(3,9086503371292665, 4,3394735994897923e-14)
Double Integral Function:
SciPy biedt dblquad dat kan worden gebruikt om dubbele integralen te berekenen. Een dubbele integraal, zoals velen van ons weten, bestaat uit twee reƫle variabelen. De functie dblquad() neemt de te integreren functie als parameter samen met 4 andere variabelen die de limieten en de functies dy en dx definiƫren.
EXAMPLE:
from scipy import integrate
a = lambda y, x: x*y**2
b = lambda x: 1
c = lambda x: -1
integrate.dblquad(a, 0, 2, b, c)
OUTPUT:
-1.333333333335, 1.4802973661668755e-14)
SciPy biedt verschillende andere functies om drievoudige integralen, n-integralen, Romberg-integralen, enz. te evalueren die u verder in detail kunt onderzoeken. Om alle details over de vereiste functies te vinden, gebruikt u de helpfunctie.
Optimalisatiefuncties:
De scipy.optimize biedt een aantal veelgebruikte optimalisatiealgoritmen die kunnen worden bekeken met behulp van de helpfunctie.
Het bestaat in principe uit het volgende:
- Onbeperkt en beperkt minimaliseren van multivariate scalaire functies, d.w.z. minimaliseren (bijv. BFGS, Newton Conjugate Gradient, Nelder_mead simplex, enz)
- Globale optimaliseringsroutines (bijv. differential_evolution, dual_annealing, enz)
- Laatste-kwadraten-minimalisatie en krommingsaanpassing (bijv. least_squares, curve_fit, enz)
- Scalaire univariate functies-minimalisatoren en wortelzoekers (bijv. minimize_scalar en root_scalar)
- Multivariate vergelijkingssysteem oplossers met behulp van algoritmen zoals hybride Powell, Levenberg-Marquardt.
Rosenbrook Functie:
Rosenbrook functie ( rosen) is een testprobleem dat wordt gebruikt voor gradient-gebaseerde optimalisatie algoritmen. Het is als volgt gedefinieerd in SciPy:
EXAMPLE:
import numpy as np
from scipy.optimize import rosen
a = 1.2 * np.arange(5)
rosen(a)
OUTPUT: 7371.0399999999945
Nelder-Mead:
De methode Nelder-Mead is een numerieke methode die vaak wordt gebruikt om de min/max van een functie in een multidimensionale ruimte te vinden. In het volgende voorbeeld wordt de methode minimize samen met het Nelder-Mead-algoritme gebruikt.
VOORBEELD:
from scipy import optimize
a =
b = optimize.minimize(optimize.rosen, a, method='Nelder-Mead')
b.x
OUTPUT: array()
Interpolatiefuncties:
In het vakgebied van de numerieke analyse verwijst interpolatie naar het construeren van nieuwe gegevenspunten binnen een verzameling bekende gegevenspunten. De SciPy-bibliotheek bestaat uit een subpackage met de naam scipy.interpolate dat bestaat uit spline-functies en -klassen, eendimensionale en multidimensionale (univariate en multivariate) interpolatieklassen, enz.
Univariate interpolatie:
Univariate interpolatie is in feite een gebied van curve-fitting dat de kromme vindt die een exacte fit geeft aan een reeks van tweedimensionale datapunten. SciPy biedt de functie interp1d die kan worden gebruikt om univariate interpolatie te produceren.
EXAMPLE:
import matplotlib.pyplot as plt
from scipy import interpolate
x = np.arange(5, 20)
y = np.exp(x/3.0)
f = interpolate.interp1d(x, y)x1 = np.arange(6, 12)
y1 = f(x1) # use interpolation function returned by `interp1d`
plt.plot(x, y, 'o', x1, y1, '--')
plt.show()
OUTPUT:
Multivariate interpolatie:
Multivariate interpolatie (ruimtelijke interpolatie ) is een soort interpolatie op functies die uit meer dan Ć©Ć©n variabelen bestaan. Het volgende voorbeeld toont een voorbeeld van de
Interpolatie over een 2-D-raster met behulp van de functie interp2d(x, y, z) In principe worden x, y, z-arrays gebruikt om een of andere functie interp2d-functie te benaderen. f: “z = f(x, y)” en geeft een functie terug waarvan de aanroepmethode spline-interpolatie gebruikt om de waarde van nieuwe punten te vinden.
VOORBEELD:
from scipy import interpolate
import matplotlib.pyplot as plt
x = np.arange(0,10)
y = np.arange(10,25)
x1, y1 = np.meshgrid(x, y)
z = np.tan(xx+yy)
f = interpolate.interp2d(x, y, z, kind='cubic')
x2 = np.arange(2,8)
y2 = np.arange(15,20)
z2 = f(xnew, ynew)
plt.plot(x, z, 'ro-', x2, z2, '--')
plt.show()
OUTPUT:
Multidimensionale beeldbewerkingsfuncties:
Beeldbewerking houdt zich in feite bezig met het uitvoeren van bewerkingen op een beeld om informatie te verkrijgen of om een verbeterd beeld te krijgen van het oorspronkelijke beeld. Het pakket scipy.ndimage bestaat uit een aantal beeldverwerkings- en analysefuncties die zijn ontworpen om te werken met matrices van willekeurige dimensionaliteit.
Convolutie en correlatie:
SciPy biedt een aantal functies die correlatie en convolutie van beelden mogelijk maken.
- De functie correlate1d kan worden gebruikt om eendimensionale correlatie langs een gegeven as te berekenen
- De functie correlate maakt multidimensionale correlatie van een gegeven matrix met de gespecificeerde kernel mogelijk
- De functie convolve1d kan worden gebruikt om eendimensionale convolutie langs een gegeven as te berekenen
- De functie convolve kan worden gebruikt om eendimensionale convolutiedimensionale convolutie langs een gegeven as te berekenen
- De functie convolve maakt multidimensionale convolutie van een willekeurige matrix met de opgegeven kernel mogelijk
EXAMPLE:
import numpy as np
from scipy.ndimage import correlate1d
correlate1d(, weights=)
OUTPUT: array()
Bestand IO:
Het scipy.io pakket biedt een aantal functies die u helpen bestanden van verschillende formaten te beheren, zoals MATLAB-bestanden, IDL-bestanden, Matrix Market-bestanden, enz.
Om gebruik te maken van dit pakket, moet u het als volgt importeren:
import scipy.io as sio
Voor volledige informatie over het subpakket, kunt u het officiƫle document over File IO raadplegen.
Dit brengt ons aan het einde van deze SciPy Tutorial. Ik hoop dat u alles duidelijk hebt begrepen. Zorg ervoor dat u zo veel mogelijk oefent.
Als u meer artikelen wilt bekijken over de meest trending technologieƫn van de markt, zoals Artificial Intelligence, DevOps, Ethical Hacking, dan kunt u verwijzen naar de officiƫle site van Edureka.
Zoek uit naar andere artikelen in deze serie die de verschillende andere aspecten van Python en Data Science zullen uitleggen.
1. Machine Learning Classifier in Python
2. Python Scikit-Learn Cheat Sheet
3. Machine Learning Tools
4. Python Bibliotheken Voor Data Wetenschap En Machine Leren
5. Chatbot In Python
6. Python Collecties
7. Python Modules
8. Python Ontwikkelaars Vaardigheden
9. OOPs Interview Vragen en Antwoorden
10. C.V. Voor Een Python Ontwikkelaar
11. Verkennende Gegevensanalyse In Python
12. Slangenspel met Python’s Turtle Module
13. Python Ontwikkelaar Salaris
14. Principale Componenten Analyse
15. Python vs C++
16. Scrapy-handleiding
17. Web Scraping met Python
18. Minst kwadraten regressie methode
19. Jupyter notitieboek spiekbriefje
20. Python Grondbeginselen
21. Python Patroonprogramma’s
22. Generatoren in Python
23. Python Decorator
24. Python Spyder IDE
25. Mobiele toepassingen met Kivy in Python
26. Top 10 beste boeken om & Python te leren
27. Robot Framework Met Python
28. Snake Game in Python met behulp van PyGame
29. Django Interview Vragen en Antwoorden
30. Top 10 Python Toepassingen
31. Hash Tables en Hashmaps in Python
32. Python 3.8
33. Support Vector Machine
34. Python handleiding