Download as pdf or txt
Download as pdf or txt
You are on page 1of 633

Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.

Derya Varol

PYTHON İLE KODLAMA II


PYTHON BİLİM PAKETİ
NUMPY(NUMERIC/SAYISAL PYTHON)
SCIPY(SCIENTIFIC/BİLİMSEL PYTHON)
MATPLOTLIB (GRAFİK KÜTÜPHANESİ)
PANDAS (VERİ BİLİMİ MODÜLÜ)

Yük.Müh. N.DERYA VAROL

2017-2021
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Hazırlayan: N.Derya Varol
İlk Yayın Tarihi / First Publishing Date: 24-09-2021
Yayın Ortamları / Publishing Environments : researchgate.net
ve/and academia.edu

5846 sayılı Fikir ve Sanat Eserleri Kanunu’na göre


Eserin tüm yayın, tercüme ve iktibas hakları N.Derya Varol’a aittir.

Copyright ©N.Derya Varol , 2021

Contents can not be used without permission of the Author

All rights reserved. No parts of this publication may be


reproduced, stored in retrieval system or transmitted in any form
or by any means, electronic, mechanical, photocopying, recording,
or otherwise, without the written permission of the Author.
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Teşekkürler..
Bu kitabın da ortaya çıkmasını sağlayan alanlarası araştırma sürecine
bir bütün olarak bakıp teşekkürlerimi buna göre ediyorum.
Araştırmalarımın ilk kitabı “Türk Hazinesi” nin ortaya çıkmasında çok
büyük etkisi katkısı olan çok sevdiğim ve çok değer verdiğim bir
hanımefendiye çok teşekkür ediyorum.
Alanlararası Araştırma sürecimdeki İTÜ ‘nün saygıdeğer ve değerli
akademisyenlerine de bu süreçdeki bilgiye bulguya bilimsel bakışla,
bulguların bir konferansla gündeme getirilmesine katkıları için teşekkürler.
Yazıtbilimle ilgili iki kitamdaki bulguları bir konferansla anlatma
ortamını sağlayan Bilkent Üniversitesi’ne de teşekkürler.
Kısa ama değerli ve aydınlatıcı cevabı ile yoluma ışık tutan Prof.Dr.
Aslıhan Yener’e
Teorilerimi ve bulgularımı aktardığımda bilimsel bir ilgi ve dikkatle
yorumlayan gerçek bir bilim insanı Prof.Dr.Seyhan Uygur Onbaşıoğlu’na
Arkeolojik bulgularım ve “Araştırma Enstitüsü Projesi” ile ilgili
değerli zamanını ayıran diğer bir gerçek bilim insanı Sayın Prof.Dr. A. Beril
Tuğrul’a teşekkürler..
Bütün araştırma sürecimde bu kitabın da ortaya çıkdığı Enstütü
projesi oluşturma sürecinde Researchgate’deki sorularıma uzman oldukları
alanlardan bilgileri ile ışık tutarak cevap veren ve keşfettiğim İnsanlığın en
eski buluntularını barındıran Paleolitik Dönem İstanbul Arkeolojik
buluntularını onaylayan akademisyen ve profesyonellere başta Dr.Anek R
Sankhyan (B.Sc medical, M.Sc. Anthropology, Ph.D. Paleoantropology)
olmak üzere teşekkürler..
Ve Python, Numpy, Matplotlib, Pandas gibi ortaya çıkışlarına
milyonlarca dolar fon desteği sağlanan bilimsel program paketlerini
opensource açık kaynak bedava olarak bilimin gelişmesine sunan buna
katkısı olanlara da teşekkürler..
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Hazırlayan: Yazar, Alanlararası Araştırmacı Yük.Müh.N.Derya Varol
1966’da Ankara’da doğmuştur. İlkokul, ortaokul ve lise eğitimini
İstanbul Kadıköy Bölgesi’nde tamamlamıştır. İstanbul Teknik Üniversitesi
Makina Fakültesi Makine Mühendisliği’nden mezun olmuş, yine İstanbul
Teknik Üniversitesi’nde Makina Mühendisliği’nde yüksek lisans yapmıştır.
Eskişehir Kentsel Gelişim Projesi’nde çalışmış, tekrar İstanbul’a
geldikten sonra ise Türkoloji çalışmalarına başlamıştır. Çalışmalarının ilk
cildini yayınevine verilecek hale getirmiş ve bir iki yayınevindeki
beklemeden sonra kitabın daha fazla beklemeden halka ulaşabilmesi için
kendisi şahıs yayıncı olarak kitabı matbaaya hazır hale getirmiş kapak
tasarımını da yapıp çalışmasının ilk cildi ”Türk Hazinesi Eski Türk
Abecesi’nin Kökeninin Türkçe olduğunun İspatı Uygarlık Tarihi Yeniden
Yazılırken” adlı kitabını (ISBN: 978-605-62333-0-2) Ağustos 2011 ‘de
yayınlamıştır.
Ve ikinci kitabı “Antik Türk Yazısı’ndan Uygarlığa” ‘yı yazmıştır. (283
sayfa)
Ardından Kitapları ile ilgili üniversitelerde konferanslara başlamıştır.
İlk konferans İstanbul Teknik Üniversitesi’nde 10 Kasım 2015 ‘de
gerçekleşmiştir. Ve ikinci konferans Bilkent Üniversitesi’nde yapılmıştır. Bu
ikinci konferansı öncesinde İstanbul’da Paleolitik buluntular ve bir
Paleolitik kültür keşfetmiştir.
En belirgin parçaları İstanbul Arkeoloji Müzesi’ne götürmüş , ama
Müze “bizce tabi, ama eser de olabilir” dediği halde parçaları almamış ve
araştırmanın sorumluluğu onun omuzlarında kalmıştır. Araştırmalarına tek
başlına ve kısıtlı imkanlar ile devam etmiş, Researchgate.net ve
Academia.edu da alandan akademisyenleri ve dünyayı bu arkeolojik keşifle
bilgilendirmek için 14 İngilizce ve 3’ü Türkçe toplm 17 makale
yayınlamıştır. 3ncü kitabı 360 buluntuyu belirlemelerini ve detaylı bilgileri
içeren ”The Discovery of Istanbul Archaeological Culture I : Arrowheads ,
Spearheads, Lithic Tools and Sculptures” ‘ı da tamamlamıştır.
İstanbul için bir gereklilik olan “Teknik Kökenli Bir Yazıtbilim ve
Arkeoloji Araştırma Enstitüsü Kurulması” hazırlığına başlamış ve bu enstitü
projesinin 5 versiyonunu hazırlayıp yayınlamıştır.
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
İstanbul’da bulunan ilk hominin parçası olan İstanbul’da bulduğu
üzerinde diş içeren fosilleşmiş çene kemiği parçasını da Researchgate’deki
15inci sorusunda dünyadan ilgili alandan uzmanlarla birlikte fosil azı dişi
olduğunu belirletmiştir.

Enstitü projesini hazırladığı süreçte Enstitü’nün ders programlarının


detayı ile ilgilenirken 240 sayfalık çoğu kendi oluşturduğu algoritmaları
içeren bu alanda ilk Türkçe kaynak “Python, VTK ve Paraview ile Bilimsel
Görelleştirme VTK ya Giriş/ Python VTK ve Paraview de 3D Vektör Alanı
Oluşturulması ve Görelleştirilmesi“ kitabını yazıp, şahıs yayıncı olarak
dijital ISBN sini alıp Researchgate ve Academia edu ‘da Eylül 2018’de
yayınlamışdır. ISBN 978-605-62333-3-3
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Prepared by: Author and Independent Researcher MSc.Eng. Nazmi Derya
Varol
N.Derya Varol was born in Ankara in 1966. He completed primary,
secondary and high school education in Istanbul Kadıköy Region. He
graduated from Mechanical Engineering Department of Istanbul Technical
University.
He also earned master of science degree in Mechanical Engineering
Field at Istanbul Technical University. He worked at City Development
Project in Eskişehir.
After he returned to Istanbul, He started to his Turkology Works.
He prepared the first volume of his works as it could be given to a
publishing house. But after waiting for a few publishing house, He decided
to publish his own book himself as a self-publisher. And he edited his book
and designed the book cover as it could be given to a printing house. And
then he published his first book ”The Turkic Treasure - The Proof that The
Root of The Ancient Turkic Alphabet is Ancient Turkic Language- While The
Civilization History is being Written Again” (ISBN: 978-605-62333-0-2)
(151 pages) in Turkic Language which is the first volume of his Works, in
August 2011.
And then he wrote his second book “From The Ancient Turkic Alphabet
to Civilization”. (283 pages)
And he started to conferences at Universities. First Conference was at
Technical University of Istanbul on 10th of November,2015. And second
conference was at Bilkent University. Before his second conference, He
discovered some paleolithic artifacts and a paleolithic culture in Istanbul.
He showed most clear parts to Istanbul Archaeology Museum. But
They didn’t take these parts. And the responsibility stayed on his shoulders.
He continued this research by himself. He published seventeen articles
about this archaeological discovery in Researchgate.net and Academia.edu
to inform academicians in archaeology field.
Meanwhile, he completed his third book ”The Discovery of Istanbul
Archaeological Culture I : Arrowheads , Spearheads, Lithic Tools and
Sculptures”.
And he started the preparation of Establishing “A Technical Based
Inscription Science and Archaeology Research Institute”.
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
He also found a “a fossilized mandible fragment with a molar tooth” in
İstanbul. And he made determined and approved “this fossilized mandible
fragment with a tooth” ,which is the first hominin/hominid fossil fragment
found in İstanbul, as a fossilized hominin/hominid tooth with related
specialists from the world on his 15th question in Researchgate.
During the preparations of Institute Project, he wrote a scientific
book and published it dijitaly “Python, VTK ve ParaView ile Bilimsel
Görselleştirme “(Scientific Visualizationwith Python,VTK and Paraview)
ISBN 978-605-62333-3-3
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

İÇİNDEKİLER
ÖNSÖZ ............................................................................................................XXVI
GİRİŞ .................................................................................................................... 1

I. NUMPY(NUMERIC PYTHON) SAYISAL PYTHON …………………………….………….. 12


I.1. Numpy Dizileri(Numpy Arrays) numpy.array([ , , , ]) …………………………. 13
Uygulama:Dizi Array tanımı için illa numpy yüklenecek ve np.array() ile
tanımlanacak ......................................................................... 14
Uygulama: 1 Boyutlu Numpy String Dizisi(Array) ................................. 15
Uygulama: 2 Boyutlu Numpy String Dizisi(Array) ................................. 15
Uygulama: np.chararray((3, 3)) ............................................................. 16
Uygulama: String ve sayıyı aynı dizide kullanmak record array
numpy.rec.fromarrays() ................................................. 16
Uygulama:: String ve sayıyı aynı dizide kullanmak structured array ... 17
Uygulama: String ve sayıyı aynı dizide kullanmak structured. …….....17
Uygulama:String ve sayıyı aynı dizide kullanmak object türü Datatype
dtype='O' ............................................................................. 18
Uygulama:String ve sayıyı aynı dizide kullanmak
rfn.merge_arrays((A, B)) .................................................. 19
Uygulama: list tanımı A=[ , , , ] ………………………………………………………….… 20
Uygulama: list ve numpy.array dizisi tanımı numpy.array([ , , , ]) ve
Liste(list) yi 1 boyutlu Dizi(array) Yapmak numpy.array(A) .. 20
Uygulama: liste(list) ve numpy.array dizisi tanımı ………………..………..….. 21
Uygulama: list ve numpy.array dizisi farkı numpy.array() e aritmetik işlem
uygulanabilir ……………………………………………………………………. 22
Uygulama: List array farkı. Array e fonksiyon uygulanabiliyor. List e
uygulanamıyor ………………………………………………………………….. 22
Uygulama: List array farkı ....................................................................... 23
Uygulama: Numpy Dizisi Attributes: Dizinin Boyutu a.ndim, Şekli a.shape
ve Büyüklüğü a.size ………………...........................…............….. 24
Uygulama: Dizinin boyutu x.ndim, x.shape, büyüklüğü x.size ........... 25
Uygulama: Dizinin Şekil özelliği x.shape ........................................... 26

VIII
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Uygulama: Dizinin Büyüklüğü d.size ..................................................... 27
Uygulama: list() for ile tek tek elemanlara işlem uygulamak ................... 28
Uygulama:Numpy Dizisi(array) Elemanları karakterlerden de oluşabilir.
numpy.array(["a", "b", "c"]) …………………………………….….... 29
Uygulama: Dizinin Boyu(length) len(a) fonksiyonu ............................... 30
Uygulama: Dizi türü type(a) numpy.ndarray ......................................... 31
Uygulama: Veri Türü/Data type .dtype int32 ...................................... 32
Uygulama: Veri Türü/Data type .dtype float ....................................... 32
Uygulama: dtype ı Veri Türünü belirlemek
numpy.array([ , ], dtype=numpy.int64) ...............................33
Uygulama: dtype ı Veri Türünü belirlemek
numpy.array([ , ], dtype=numpy.float64) ............................ 33
Uygulama: in Dizi/Array içinde mi? Elemanı mı? ................................... 34
Uygulama: np.array tanımlaması ve in ile eleman var mı sorusu ............34
Uygulama: in ile eleman var mı ..............................................................35
Uygulama: in ile eleman var mı .............................................................. 36
Uygulama: Karakter elemanları için in ile eleman var mı ...................... 37
Uygulama: numpy.ones(shape) ...............................................................38
Uygulama : numpy.zeros(shape) ............................................................ 38
Uygulama: numpy.empty(shape) ............................................................39
Uygulama: numpy.empty((6, 6),dtype=int ............................................ 39
Uygulama: numpy.random………..() ....................................................... 40
Uygulama: np.random.randint(low=1, high=100, size=(6,6)) ................. 40
Uygulama: np.random.random_sample((6, 6)) ...................................... 41
Uygulama: np.random.random.randint(1,200, size=(6,6)) .................... 41
Uygulama: np.array().. …………………………………………….…………………………… 42
Uygulama: Dizi İndisleri(Array Indices) =np.indices((3,3)) ..................... 43
Uygulama: Dizi İndisleri(Array Indices) ....................................................44
Uygulama: Dizi İndisleri(Array Indices) .....................................................45
Uygulama: Dizi İndisleri(Array Indices) .....................................................45
Uygulama: Dizi İndisleri(Array Indices) .....................................................46
Uygulama: Dizi İndisleri(Array Indices) .....................................................47
Uygulama: Dizi İndisleri(Array Indices) .....................................................47
Uygulama: Dizi İndisleri(Array Indices) .....................................................48
IX
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Uygulama: Dizi İndisleri(Array Indices) (Array Indexing) ............................49
Uygulama: Dizi Elemanını Değiştirmek a[0, 0] = ....................................... 50
Uygulama: Dizi Elemanını Değiştirmek np.asarray(A)[2]=2 ...................... 51
Uygulama: Numpy Dizi Dilimleme (Array Slicing) a[2:]............................. 52
Uygulama: Numpy DiziDilimleme .............................................................53
Uygulama: Numpy Dizi Dilimleme ............................................................53
Uygulama: Numpyarray İki Boyutlu Dilimleme (Two-Dimensional Slicing)
x[2:,2:] .................................................................................. 55
Uygulama: Numpyarray İki Boyutlu Dilimleme x[1:,-1,1:-1] ......................56
Uygulama: Numpyarray İki Boyutlu Dilimleme x[1::2,1::2] .......................57
Uygulama: Yeniden şekillendirmek reshape ............................................60
Uygulama: Diziden parça çıkarma np.r_[ ] .............................................. 61
Uygulama: Boolean Arrays ([False, False, True,]) .....................................62
Uygulama Boolean array, | boolean or ................................................... 62
Uygulama: Boolean array, & boolean and ...............................................63
I.2. Numpy arange , linspace, meshgrid Fonksiyonları(functions) ………..…… 64
Uygulama: numpy.arange() ............................................................... 64
Uygulama: numpy.arange() in Python range() den farkı ................... 64
Uygulama: numpy.arange() ............................................................... 65
Uygulama :numpy.linspace() ............................................................. 67
Uygulama: Vektör Alanı koordinatlarını oluşturmada kullanılan iki
yöntem arange ve linspace ile aynı koordinat noktalarını
oluşturmak ............................................................................69
Uygulama: numpy.meshgrid(x, y) ................................................... 71
Uygulama: numpy.meshgrid(x, y) ..................................................... 72
Uygulama: numpy.meshgrid(x, y) ..................................................... 73

I.3. Numpy İle Vektör Tanımlama a=np.array([x, y, z]) ………………….……….. 76


Uygulama: İki Vektörü Toplamak ............................................................ 77
Uygulama: 3 boyutlu vektör np.array([2, 6, 22]) ..................................... 78
Uygulama: Vektörün Transpozesi .T : Sütun Vektörü(Column Vector) …. 79
İki Vektörün Scaler Çarpımı(Scalar Product / Dot Product) np.dot(a,b) ..80
İki Vektörün Vektörel Çarpımı Bilgi Tazeleme.........................................81
Uygulama: İki Vektörün Vektörel Çarpımı np.cross(a,b) ....................... 82

X
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
I.4. NUMPY İLE MATRİSLER …………………………………………………………………....... 83
Matris Tanımlama = np.matrix( ((1,2), (3, 4)) ) ve = np.mat('[1 2;3 4]')
ile ve np.array([[1, 2], [3, 4]]) ile ……………………………………………………….…84
Uygulama: numpy.mat('[1 2 3;4 5 6;7 8 9]') ile Matris tanımlamak ...... 84
Uygulama: numpy.matrix( ((1, 2, 3), (4, 5, 6), (7, 8, 9)) ) ile Matris
tanımlamak ...........................................................................84
Uygulama:numpy. array ([[1, 2, 3], [4, 5, 6],[7, 8, 9] ]) ile Matris
veya numpy. array (((1, 2, 3), (4, 5, 6),(7, 8, 9) )) ile Matris
tanımlamak: ikisi de aynı ............................................ 85
Uygulama: Matrisin İndis ile elemanı A[i,j] ……………………………………………87
Uygulama: 2 boyutlu array çarpımı 2 boyutlu matris çarpımından farklı 88
Uygulama: mat(((,), (,))) ve matrix('[ ; ]') ile Matris Tanımlama, tüm
elemanları eşit mi? np.all(A == B) ....................................... 89
Uygulama: mat() ve matrix() A matrisi B Matrisi mi? A is B ..................90
Uygulama: Logic Boolean hatırlatma …………………………………………………. 91
Uygulama: Matrislerin Toplanması, Çıkartılması, Çarpımı ..................... 92
numpy.add(matris1,matris2)
numyp.subtract(matris2,matris1) matris1*matris2 ......
Uygulama: İki Matrisin çarpımı Her iki yöntemle
np.matrix( ) ile Tanımlanan Matrix lerin Çarpımı a * b
np.array() ile Tanımlanan Matrix lerin Çarpımı a.dot(b) ile ......... 94
Uygulama:İki Matrisin çarpımı …………………………………………………..………. 96
Matris Tersi (Inverse) inv(a) ………………….…………………………………………. 103
Matris Transpozesi a.transpose() …….…………………………………...……… 107
Uygulama: Matrisin Determinant ı numpy.linalg.det(A) …………………... 111
Uygulama: numpy.eye() Birim(Identity) Matris ................................... 116
Hatırlatma: I Identity/Birim Matris ile bir Matrisin çarpımı aynı matrisdir
Uygulama: numpy.diag(np.array([1,2,3,4,5,6])) .................................. 117
Uygulama: numpy.diag(np.diag(x)) bir matris in diagonali .................. 118
Uygulama: Matris’in Diagonali(Köşegeni) matris.diagonal() ................ 119
Uygulama: Matris’in ……………. (Trace) i. Diagonal(Köşegen) toplamı .
matris.trace() ..................................................................... 120
Uygulama: Maksimum ve minimum değerler
np.max(matris) np.min(matris) ................................... 121
XI
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
I.5. Numpy ve Tensörler(Tensors) ……………………………………………………………… 127
Tensör Nedir ............................................................................................. 127
Fotoğraf 3 boytlu bir Tensördür .................................................................131
Genel Görecelikte Tensör ......................................................................... 132
Makine Öğrenmesinde (Machine Learning) Tensör ................................. 133
Numpy ve Tenörler …………………………………………………..…. 134
Uygulama: 3D Tensör Oluşturmak .......................................................... 137
Uygulama: Numpy dizisi ile 3x3x3 Tensör Tanımlama ............................ 138
Uygulama: Pratikten Tensör Örneği Fotoğraf 3 Boyutlu bir tensördür Pixel
Arrays np.asarray(gör) ................................................... 139
Uygulama: Görüntünün 3 Boyutlu Tensör olduğunun OpenCV ve Numpy
ile örneği print(cv2.imread('...jpg') .................................... 141
Uygulama: Tensör Toplama .................................................................... 143
Uygulama: Tensör Çıkarma ..................................................................... 144
Uygulama: İki Tensörün Çarpımı (Tensor product )
numpy.tensordot() .............................................................145
Uygulama: İki Tensörün Çarpımı (Tensor product )
numpy.tensordot() ............................................................ 146
Uygulama: İki Tensörün Skaler Çarpımı: Hadamard Product C = A * B .… 150
Uygulama: numpy.linalg.tensorsolve(a, b) ........................................... 152
Uygulama: numpy.linalg.tensorinv(A, ind=2) ......................................... 155
Uygulama:.mat Matlab Data sını Numpy ve Scipy ile okumak ............... 159
Uygulama: Python Dictionary yapısı ...................................................... 164
Uygulama: Dictionary list(Dict.keys()) ........................................................... 164
Uygulama: Helal Çözüp Dictionary’den Diziyi Aldık
Dict=loadmat('D:/../....mat') T=Dict['X'] ............................ 165
I.6. Lineer Cebir(Linear algebra) numpy.linalg ……………………………………..... 167
Uygulama: numpy.linalg matrix multiplication dot( ) .......................... 169
Uygulama: Matris tersi(inverse) linalg.inv() ......................................... 170
Uygulama: Matris Determinantı linalg.det() ........................................ 170
Denklem Takımlarınn Çözümü ............................................................. 171
Uygulama: numpy.linalg.solve(a,b) denklem takımı çözümü .............. 172
Uygulama:numpy.linalg.solve(a,b) denklem takımı çözümü ............... 173
Uygulama:numpy.linalg.solve(a,b) denklem takımı çözümü ............... 173
XII
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
II. SCIPY (SCIENTIFIC PYTHON) BİLİMSEL PİTON ………………………………....... 174
II.1. Scipy Linear Algebra scipy.linalg ..................................................... 176
Matrislerle işlemler .......................................................................... 176
Uygulama: Matrix inverse linalg.inv( ) ............................................ 176
Denklem Takımlarının Çözümleri ...................................................... 179
linalg.inv(A).dot(b) Matrix Inverse ile Denklem takımı Çözümü
np.linalg.solve(A, b) ile Denklem takımı Çözümü") ................... 180
II.2. Matrisi Çarpanlarına Ayırma( Matrix Factorization/Lower Upper
Factorization/ LU Matrix Decomposition) ………………………………….. 183.
Uygulama: The LU decomposition Scipy.lnalg.lu() function ............. 184
Uygulama: The LU decomposition Scipy.lnalg.lu() function ............. 186
II.3. Scipy.integrate Genel İntegral (General integration) quad ............. 187.
Uygulama: Scipy Genel İntegral Alma integrate.quad() ................. 188
Uygulama: Scipy Genel İntegral Alma integrate.quad()
integrate.quad(lambda x: special.jv( ,x), 0, ) ............... 188
Uygulama: Scipy Türev almak derivative(f, ,dx) .............................. 189
II.4. Scipy Special Fonksiyonları(Functions) ........................................... 190

XIII
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
III. MATPLOTLIB Bilimsel grafikler, Bilimsel Verileri Çizdirmek ………..……… 194
Pylab ve matplotlib.pyplot arasındaki farkın açıklanması .................... 194
III.1. 2 BOYUTTA FONKSİYON ÇİZİMLERİ plot(x,f(x), color=" ", lw=2) 195
Uygulama: Matplotlib pylab plot(x,6x) …………………………………… 195
Uygulama: Matplotlib pylab plot(x,6*x**2) ……………………………. 196
Uygulama: Matplotlib pylab plot(x,exp(x)) .................................. 197
Uygulama: Matplotlib pylab plot(x,exp(-x)) ................................ 198
Uygulama: Matplotlib pylab plot(x,-exp(x)) ................................. 199
Uygulama: Matplotlib pylab plot(x,-exp(-x)) ................................ 200
Uygulama: Matplotlib pylab plot(x,sin(x), cos(x)) ....................... 201
Uygulama: Matplotlib pylab plot(x,sin(x), cos(x)) ....................... 202
Uygulama: Matplotlib pylab plot(x,sin(x), cos(x)) ....................... 203
Uygulama: Pylab Sigmoid Eğrisi 1/(1+ exp(-x)) ..................... 204
Uygulama: Pylab Ters Sigmoid Eğrisi 1/(1+ exp(x)) ............... 205
Uygulama: Matplotlib pylab plot(x,6*x*cos(x)) ............................ 206
Uygulama: Matplotlib pylab plot(x,exp(x)*sin(x)) ........................ 207
Uygulama: Matplotlib pyplot np.sin(x) np.cos(x) .......................... 208
Uygulama: Matplotlib pyplot np.sin(x) np.cos(x) .......................... 209
Uygulama: Matplotlib pyplot numpy.sin(2*np.pi*t) ) .................. 210
Uygulama: Matplotlib pyplot numpy.sin( ) Subplotzero ...............211
Uygulama: Matplotlib pyplot np.sin(x) ......................................... 212
Uygulama: Matplotlib pyplot ax.plot(x, np.sin() Hostsubplot .......213
Uygulama: Matplotlib pyplot plt.plot([1,2,3,4], [1,4,9,16],ro) .......215
Uygulama: Matplotlib pyplot engineering_formatter...................216
Uygulama: Matplotlib pyplot ........................................................ 218
Uygulama: Pyplot Çoklu Eksen takımları ile Grafik Çizimi subplot 219
Uygulama: Pyplot plt.gcf (get cur fig) ve fig.set_size_inches( , ) 221
Uygulama: Pyplot plt.gca() Get current axes ……………….………………222
III.2. Dizi(Array)’den Çizim plt.plot([ x1,x2,x3, x4], [y1,y2 ,y3,y4]) …… 223
Uygulama: Pyplot Dizi Array ıle çizim ………………………………………... 224
Uygulama: Pyplot Dizi Array ıle çizim ………………………………………….226
Uygulama: Pyplot Dizi ile dolar grafiğı pratiğiı ………………………….…227
Uygulama: Matpotlib pyplot
plt.plot([1,2,3,4],[8000,8200,8600,9200]) .............233
XIV
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Uygulama: Matplotlib pyplot Eksenlerin adını yazmak ……………… 234
Uygulama: Matplotlib pyplot t plt.plot([1,2,3,4], [1,4,9,16]) …… 235
III.3. Geri Plan RENGİ, Eksen Renkleri ........................................... 236
Uygulama: Sitilleri Kompoze etmek …………….……………………………. 236
Uygulama: GeriPlan rengini Değiştirmek facecolor …………………... 238
Uygulama: GeriPlan rengini Değiştirmek …………………………………… 240
Uygulama: GeriPlan rengini Değiştirmek …………………………………… 242
Uygulama: Renklendirmede cmap=cm.jet colormap kullanımı … 243
Uygulama: Eksen rengini değiştirmek …………………………………….…. 244
Uygulama: Eksen rengini ve eksen dışının rengini değiştirmek
plt.rc_context({'axes.edgecolor': 'figure.facecolor':'yellow}) … 245
Uygulama: Geri plan rengini değiştirmek
plt.gcf().set_facecolor("red") eksenlerin dışı ………………………. 246
Uygulama: Matplotlib Geriplan Sitillerinin listesi ………………………. 247
Uygulama: Geriplan stili matplotlibatplotlib.style.use(sty) ………. 248
Uygulama: plt.style.context('dark_background') ………….............. 250
III.4. linspace( ), meshgrid( ) ile Matplotlib de Çizim ....................... 251
Uygulama: Matplotlib Pyplot numpy.linspace( ) ...........................251
Uygulama: Pylab numpy.linspace ile numpy.meshgrid( ) ……….. 252
Uygulama: Pylab numpy.linspace(, , , endpoint=False) ……………. 253
Uygulama: Pyplot numpy.linspace(, , , endpoint=False) …………… 254
Uygulama: Pyplot numpy.linspace((, , , endpoint=False)...............255
Uygulama : Pylab np.linspace() ………………………………………………… 256
Uygulama: Pylab numpy.linspace( ) ..............................................257
Uygulama: Eksen oranları set_yscale('symlog' linear) …………………258
III.5. 2 Boyutlu Vektörel Akış Çizgileri Çizdirmek .................................. 260
Uygulama: streamplot(x, y, u, v, density=0.6, color='k', ) ………… 260
Uygulama: streamplot(x, y, u, v, density=0.6, color='k', ) …………..262
Uygulama: streamplot(x, y, u, v, density=0.6, color='k', ) …………..264

XV
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
III.6. 2 Boyutta plt.contour() ve plt.contourf() filled contour
Yol yol(contour) çizgileri ve (filled contours )çizmek ...... .266
Uygulama: pyplot.contour(x,y,a) making Contour Plot ................ 266
Uygulama: plt.contour(x,y,a) Contour Plot ................................... 267
Uygulama: plt.contourf(x,y,a) Dolgulu Filled Contour da cmap
Colormap Kullanımı ................................................... 268
Rernklendırmede kullanılan bazı renk haritaları(color maps)……. 269
Uygulama: plt.contour(x,y,a) plt.pcolor(x,y,ac) plt.colorbar
renkçubuğu, Contour Mesh Plots ................................... 270
III.7. Ok(Arrow) Çizimi ……………………………………………………………………. 271
Uygulama: .arrow(0, 0, 0.6, 0.6 head_width=0.05,
head_length=0.1, fc='k', ec='k') …………………………….. 271

Uygulama: Matplotlib pyplot Arrow ………………………………………….. 273


Uygulama: Matplotlib Arrow pylab ile…………………………………….…. 274
Uygulama : iki ok(arrow) …………………………………………………….……. 275
Uygulama : İki ok renkli ……………………………………………………………. 276

III.8. Ok Alanı Çizimi : Vektör Alanı Çizimi (Visualizing Vector


Fields) : meshgrid ve matplotlib Axes.quiver ………………………… 277
Uygulama: pyplot.quiver(x, y, u, v, R, alpha=.5) ………… 278
Uugulama: Pyplot quiver ………..……………………………………….………280
Uygulama: 2 boyutta quiver ile Akışkanlar Mekaniği kaynak
kuyu denemesi quiver(x, y, u, v) Başardık……………………. 284
Uygulama: 3 Boyutta numpy.meshgrid( ) linspace ve quiver ile
3 Boyutlu Vektör alanı çizdirmek ............................... 291
Uygulama: meshgrid() arange() ile noktaları tanımlıyalım ve
Vektör Alanına u=x v=y w=z diyelim .............................293
Uygulama: Vektör oklarına renk vedik color='r' ……………………. 295
Uygulama: 3D Vektör alanı quiver ile Fluid Mechanics Akışkanlar
Mekaniğindeki Kaynak Kuyu ....................................... 314

Çizime/Grafiğe Sembol ve Renk Dağılımı eklemek :


quiverkey() ve scatter( ) ……………………………………………..….327

XVI
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
III.9. FONKSİYONDAN 3 BOYUTLU SÜREKLİ YÜZEY ÇİZİMİ
.plot_surface(x, y, f(x,y)) …......................................................... 333
3D Başlangıcı : 3D Eksen Takımını çizmek ……………………….. 334
ax=plt.axes(projection='3d')
Görünüm açısını değiştirmek axis.view_init(a, b) a ve b
Açıları …………………………………………………………………… 337
Uygulama: Matplotlib pyplot .plot_surface(x, y, f(x,y)) ……. 338
Matpoltlib’te Renk Haritaları CM Colormaps renk paleti
Kullanımı from matplotlib import cm cmap=cm. .. 340
Uygulama: Matplotlib pyplot axis.plot_surface() ve
fig.colorbar(, ); ……………………………………………... 342
Uygulama Değişik Bir Fonksiyonla. Güzel Sonuç ………….….. 344
Uygulama: Matplotlib pyplot .plot_surface(x, y, f(x,y)) ….… 348
Uygulama: Matplotlib pyplot .plot_surface(x, y, f(x,y)) ….… 350
Uygulama: Matplotlib pyplot .plot_surface(x, y, f(x,y)) ….… 352
Uygulama: Pyplot ax.plot_surface( ) …………………….....…….. 354
Uygulama: Pyplot ax.plot_surface() ……………….………………. 356
Uygulama: Matplotlib pyplot axis.plot_surface(X, Y, Z) ve
axis.contour(X, Y, Z) izdüşüm çizimleri ………….. 358
Uygulama: Matplotlib pyplot axis.plot_surface(X, Y, Z) ve
axis.contourf(X, Y, Z) izdüşüm çizimleri …….……. 362
Uygulama: Matplotlib pyplot.plot_surface(x, y, f(x,y))
Uygulama: Pyplot Yüzey ootimizasyonu …………………..….…. 364
Uygulama: pyplot plot_trisurf( ) ile üçgensel bölünmüş 3D
yüzey çizimi EYER ………………………………………………………. 366
Uygulama: pyplot contour3D( ) ile 3D Countee ……………..… 368
Uygulama: Pyplot 3D Görünüm açısını değiştirmek……..…... 370
Uygulama: Pyplot 3D Görünüm açısını değiştirmek ……….…. 372
Görünüm açısını değiştirmek axis.view_init(a, b) A, b açıları 374
Uygulama: Pyplot Sıfırdan Küre Çizimi …………………………….. 376
Uygulama: Ppyplot Sıfırdan Küre Çizimiylab Colormap ……. 378
Uygulama: Pylab Colormap ………………………………….………….. 379
Uygulama: Pylab Colormap cm.jet ……………………..………..… 381
Uygulama: Pylab Colormap cmap=pl.cm.Reds ……………….. 383
XVII
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
III.10. FONKSİYONLA 3 BOYUTLU TELKAFES(WIREFRAME) ÇİZİMİ
.plot_wireframe(x,y, f(x,y)) ............................................... 386
Uygulama: Matplotlib pyplot .plot_wireframe(X, Y, Z) ile 3D
Wireframe 3D Telkafes Çizimi ........................386
Uygulama: plot_wireframe( ) z ………………………………….. 388
Uygulama: plot_wireframe( ) z np.sqrt(x ** 2 + y ** 2) 391
III.11. Matplotlib Pyplot 3 Boyutlu Fonksiyon Eğrisi Çizimi ................ 392
Uygulama:Pyplot 3D Yay Eğrisi Çizimi .plot(x, y, z) ………………. 392
Uygulama: Pyplot 3 Boyutlu Yay Eğrisi Çizizimi …………………….. 394
Uygulama: Pyplot 3 Boyutlu Yay Eğrisi Çizizimi …………………….. 396
Uygulama: Pyplot 3 boyutlu doğru çizimi ………………………….…. 397
III.12. Bir Pencerede birden fazla Grafik Çizdirmek subplot(m,n,p) 398
Uygulama: Pyplot fig.add_subplot(1, 2, 2, projection='3d') .. 398
III.13. GRAFİKLER(GRAPHS): pie( ), bar( ), 3D Bar bar(x, y, z), hist() …401
Uygulama: .hist( ) ……………………………………………………………..…401
Uygulama:3D Çubuk Grafiği (Bar Graph) .bar(xs, ys, zs=z) …….. 403
Uygulama: plt.bar() plt.table Tablo da ekleniyor ……………….… 405
Uygulama: Basic Gantt chart .broken_barh([(40, 50)], (30, 9),)407
Uygulama: ax1 = plt.subplots() ax1.pie() ………………………….…… 409
Uygulama: .pie( ) Simit Grafiği (Nested Pie Charts) ….………...... 410
Uygulama: .pie( ) .bar( ) Pasta+ Çubuk Grafiği ………………….. 413
Uygulama: Simit Pasta(Pia) Grafiği plt.pie() plt.Circle()
add_artist() ……………………………………………………................ 416
Uygulama: Simit Grafiği(Donut Chart) plt.pie() plt.Circle() …. 417
Uygulama: İkili Simit Grafiği plt.pie() plt.pie() plt.Circle() ……. 418
Uygulama: Yığın Area Plot plt.stackplot( ,,colors=['r','g','k','r']) 420
Uygulama: Area Plot plt.stackplot( , , , , , colors=['r','g','k','r']) 422
Uygulama: Yığın Grafiği(Stack Plot) np.vstack([y1, y2, y3]) .
.stackplot(x, y1, y2, y3, labels=labels) ………………….….…. 424
Uygulama:Yığın Grafiği(Stack Plot) plt.stackplot() ……………...…. 426
Uygulama: Kutu Grafiği (Box plot) ax.boxplot() ……………….….. 428
Uygulama: Kutu Grafiği (Box plot) ax.boxplot() ……………….... 430
Uygulama: Kutu Grafiği plt.boxplot(,, notch ='True', vert = 0) 431
Uygulama: Violin plot ax.violinplot() …………………..….. 433
XVIII
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
III.14. matshow() Matris Gösterimi ......................................................434
Uygulama: plt.matshow() matplotlib.pyplot.matshow()
Matris gösterimi (Matrix Show) …………………………..435
Uygulama: pyplot.matshow() Matris Gösterimi (Matrix Show) 436
Uygulama: pyplot.matshow() Matris Gösterimi (Matrix Show) 437
III.15. 3D Vogel voxels() 3 boyutlu küp hacim pixeli ..........................438
Uygulama: 3D Vogel ax.voxels() Voxel Hacim pixel’i Gösterimi
Uygulama: 3D Vogel ax.voxels() Voxel Hacim pixel’i Gösterimi

III.16.Dağılım Çizimi (Scatter Plot) .......................................................442


Uygulama: plt.scatter() Machine Learning için Pyplot 2D Dağılım
Grafiği (Scatter Plot) ve İlişkiler(Correlations) ........................442
Uygulama: scatter(xs, ys, zs, marker=m) Pyplot 3 Boyutlu Dağılım
3D Scattering ..................................................................... 444
Uygulama: pyplot.scatter(x, y, s=area, c=colors, alpha=0.5) çizimin
içinde sembol ve renk dağılımı kullanımı .............................. 447
Uygulama: plt.scatter(x, y, s, c="g", alpha=0.5,marker=) çizimin
içinde sembol kullanımı marker= yapraklı yonca ...................449
Uygulama: Kümeleme(Clustering) pyplot.scatter().
scipy.cluster.vq.kmeans ........................................ 451
Uygulama: numpy.polyfit(x, y, 1) Pyplot Doğrusal Bağıntı Çizgisinin
çizilmesi ( to plot a linear regression line on a scatter plot)
plt.plot(x, y, 'o') m, b = np.polyfit(x, y, 1) .............................453
Uygulama: np.polyfiy() Polinom eğrisine uydurma ...................454
Uygulama: numpy.polyfit(x, y, 1) Pyplot linear regression line
b, m = polyfit(x, y, 1) ................................................... 455

Adlandırılmış Renkler(named Colors) ................................................... 456


Hex Renk kodları ................................................................................... 457

XIX
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
III.17. ANNOTATE ile YAZI VE YAZILI KUTU DİAGRAMI Oluşturmak …...460
Uygulama: Yazı eklemek .annotate() ..........................................461
Uygulama: Yazı eklemek ax.annotate( ) ...................................463
Uygulama: Annotating with Text with Box Advanced Annotation
= dict(boxstyle="round", ax.text() ................................. 466
Uygulama: Annotate iKutu içinde yazı ekkemek........................ 468
Uygulama: Kutu içinde Yazı eklemek, Akış Diagramı (FlowCart) 470
Uygulama: Annotate ile Akış Diagramı(Flow Chart) ..................471
Uygulama: Annotate ile Akış Diagramı(Flow Chart) ...................472
Uygulama: Annotate ile Akış Diagramı(Flow Chart) ...................473
Uygulama: ax.text2D( , , " “) Yazı/Açıklama Kutu..su Kullanımı 474

Matplotlib.pyplot içeeiği …………………………………………………………....…..476


Matplotlib içeriği ………………………………………………………………………..…. 477

XX
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
IV.PANDAS VERİ BİLİMİ (DATA SCIENCE) Verileri Veri Tablosu/Veri
Çerçevesi(DataFrame) haline getirmek Excel benzeri ………….… 479
Uygulama: Veri Çerçevesi(DataFrame) Oluşturmak ve Sütun Eklemek
df = pandas.DataFrame() df['ad'] = ['Serpil', 'Yasemin'] ........ 480
Uygulama: FrameAdı.assign(SütunAdı = [ , , ]) ile Sütun (Column)
Ekleyerek Yeni Veri Çerçevesi(DataFrame) Oluşturmak .. 481
Uygulama: Pandas DataFrame e Sütun/Column Eklemek
df.assign(C=df['A']**2, D=df.B*2) .............................. 482
Uygulama:Veri tablosu/Veri Çerçevesi(Data frame) oluşturmak
= pandas.DataFrame({'A': range(1, 5), 'B': range(11, 15)}) 483
Uygulama: Pandas CSV dosyasını açmak ve VeriÇerçevesi’ne
(Dataframe’e ) Sütun Eklemek …………………….……………………….. 484
Uygulama: Pandas CSV dosyasını açmak ve tabloda yeni sütun
Oluşturmak df.assign(YeniSutun = ['4', '6', '12', '34', '43']) …………485
Uygulama: Pandas assign() Bu durumda iki tablo var df ve A ……….. 486
Uygulama: Pandas assign() Sütun eklemek ………………………………..... 487
Uygulama: Pandas assign() ile VeriÇerçevesi’ne Sütun eklemek..... 488
Uygulama: Pandas Pandas DataFrame e Sütun/Column Eklemek
df.assign(**{'C': df.A.apply(lambda x: x ** 2), 'D': df.B * 2}) 489
Uygulama: pandas.read_csv(url) Pandas Numpy ile bir web
sitesinden bir CSV yi açıp okumak ………………………….. 490
Uygulama: Internetden bir CSV okuyup Sütun Adları ile Sütun seçmek
Column Selection tips[['…', '...', '...', '…']] ………………….. 491
Uygulama: Pandas Filitreleme
print (tips[tips['time'] == '………..'].head( )) ………..…….492
Uygulama: Pandas VeriÇerçevesi( Dataframe) oluşturma …………. 493
Uygulama : pandas.date_range ve .sort_index(axis=1,
ascending=False)) .sort_values(by='A')) Eksene göre ve
küçükden büyüğe doğru dizmek ………………………….….. 496
Uygulama: Pandas Selection df[0:3] 0 dan 4 e kadar 1nci 2nci 3ncü
Satırlar/kayıtlar …………………………………………………….. 498
Uygulama: Pandas Boolean Indexing df[df.A > 0]) , df[df > 0]) …. 500
Uygulama: Numpy ile Dataframe i oluşturmak ………………………….. 501
XXI
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Uygulama: Numpy ile oluşturulan Dataframe i Pandas ile CSV
olarak kaydetmek pandas.DataFrame( )
.to_csv('D:/…../.csv') …………………… 502
Uygulama:CSV Dosyasını Pandas ile açmak
pandas.read_csv('D:/… /..csv') …………………………………. 503
Uygulama: CSV Dosyasını Pandas ile başlıksız açmak
pandas.read_csv('D:/………../….csv') ………………………… 504
Uygulama: columns=['A', 'B', 'C', 'D','E', 'L' ] ile Sütun Adı Tanımı 505
Uygulama: Sütunları adları ile seçip ikinci bir tablo oluşturup
Yazdırmak dv[['Adı','Malzemesi']] …………………………….. 506
Uygulama: Tablodaki Sütun Adları/ column headers dv.columns 507
Uygulama: Tablodaki Sütun adlarını list() ile yazdırmak …………..…. 507
Uygulama: Sütun adlarını list( .columns.values) ile yazdırmak …. 508
Uygulama: Tablodaki Sütun adlarını keys() ile yazdırmak …………… 508
Uygulama: 1 nci satırın/kaydın 6 ncı sütünündaki değeri yazmak.
Matris gibi nitelendiriyor. .iloc[1,6] ………………………. 509
Uygulama: Tablodaki Sütunların Hepsini yeniden Adlandırmak
Rename Columns dv.columns = [' ', ' '] …………………… 510
Uygulama: Tablodaki Sütunlardan seçilenleri yeniden Adlandırmak
rename function dv.rename(columns={'':'', '':''}) 511
Uygulama: Pandas Sıralama Sort df.sort_values(by=['col1']) …... 512
Uygulama: Pandas ike CSV Okumak pandas.read_csv("D:/.csv") 513
Uygulama: BAŞARI Pandas ile Vektör Alanı ALynı CSV Dosyaaını
Oluşturduk df.to_csv('D:/ParaView/CSV/VektorAlani.csv') 514
Uygulama: Pandas DataFrame e satır(lar) ekleme df=df.append() 520
Uygulama: Pandas DataFrame e satır(lar) ekleme df=df.append() 521
Uygulama: Başardık Pandas ile Vektör Alanı CSV Dosyasını
Oluşturduk df.to_csv('D:/CSV/VektorAlani.csv') …… 522
Uygulama: Pandas x y zi sütunlarından numpy.array() oluşturmak 526
Uygulama: Pandas Vector CSV sini Python’da okumak ………………. 527
Uygulama: Pandas Vector csv sinden x sütununu atamak………….. 528

XXII
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Uygulama: Pandas kayıttan Nokta/Point dizisi/array ine
dv1=dv.iloc[:, 4:7] 5 6 7 nci sütunlardan tablo
oluşturmak. bu x y z tablosunu array e çevirmek
pointarray = dv1.to_records(index=False) …………….. 529
Uygulama: Pandas ._slice(slice( , )) …………………………………………. 532
Uygulama:Pandas Kayıttan record array e .to_records() ……….… 533
Uygulama:Pandas kayıttan Nokta/Point dizisi/array ine .iloc[:, 4:7]
5 6 7 nci sütunlardan tablo oluşturmak .to_records() ……..… 534
Uygulama: Pandas kayıttan Nokta/Point dizisi/array ine Başarı …535
Uygulama: .db SQLite Veritabanı/DataBase dosyasından Pandas ‘a
pandas ve sqlite3 ile pandas.read_sql_query() ………. 536
Pandas Serileri ............................................................................. 537
Uygulama:: pandas.Series([ , , , , , ]) ………………………………….. 538
Uygulama:: Seriye index tanımlamak ......................................... 539
Uygulama: Aynı indexdeki iki seriyi toplamak ............................... 539
Uygulama: Farklı indexdeki iki seriyi toplamak ............................. 540
Uygulama:: Pandas Değerlerin Listesi ile Seri Oluşturmak ....... .541
Pandas Zaman Serileri (Pandas Time series / Date functionality)542
Uygulama: pandas.to_datetime() ............................................... 543
Uygulama: pd.to_datetime() ....................................................... 544
Uygulama: pd.date_range( , periods= , freq='H' ) ....................... 544
Uygulama: pd.date_range( , periods= , freq='D' ) ....................... 545
Uygulama: pd.date_range('2020-01-01', periods=6, freq='D').
Timezone .tz_localize('UTC') ................................................545
Uygulama: pd.date_range() pd.Series() ................................. 546
Uygulama: pd.date_range() pd.Series() .resample() ............ 546
Uygulama: pd.Timestamp() pd.Timedelta() .......................... 547
Uygulama: pd.date_range() datetime.datetime() .................. 548

XXIII
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Excel dosyalarını okuma yazma pd.read_excel()pd.to_excel() 548
Uygulama: pd.read_excel() Excel dosyalarını okuma .................. 549
Uygulama: pandas.read_excel() df['Name'].tolist() ................... 550
Uygulama: pd.read_excel() ......................................................... 550
Uygulama: pandas.read_excel df.to_csv(index=False) ........... 550
Uygulama: df1 = pd.DataFrame() df1.to_excel() ........................ 551
Uygulama: df = pd.DataFrame() df.to_excel() .............................552
Uygulama: df = pd.DataFrame() df.to_json() .............................. 553
Fonksiyon Uygulamak(Appliying functions) ................................. 554
Uygulama: df.apply(np.sqrt) Pandas Dataframe’e Fonksiyon .......554
Uygulama: df.apply(lambda ) ....................................................... 555
Uygulama: df.apply() def ile tanımlanan fonksiyonu uygulamak .. 556
Uygulama: df.apply(lambda x: x *x) ............................................. 557
Uygulama: df.apply() .................................................................... 558
Uygulama: pandas.DataFrame.drop(['B', 'C'], axis=1) ................... 559
V. PANDAS IN MATPLOTLIB İLE KULLANIMI .................................................. 560
Uygulama: Pandas Zaman Serisi Matplotlib ve Seaborn ............. 560
Uygulama: Pandas ile CSV den Okutup Matplotlib İle Grafiğini
Çizdirmek DataFrame.plot() ....................................... 562
Uygulama: Pandas Matplotlib Çizimi kaydetmek .get_figure()
.savefig("D:/……../..png") ........................................... 563
Uygulama: Pandas Matplotlib ile basit plot ................................. 564
Uygulama: Pandas Matplotlib ile plot df.plot() ........................... 565
Uygulama:Pandas Matplotlib ile Çubuk Grafiği
df.plot(kind=”bar”) ............................................... 566
Uygulama:DataFrame.plot.bar() multiple bar plot / Çoklu Çubuk
grafiği çizdirmek df.plot.bar() .....................................568
Uygulama: Üst üste Çubuk(stacked bar) Grafiği
df2.plot.bar(stacked=True) .......................................569
Uygulama: Üst üste Yatay Çubuk(horizontal stacked bar) Grafiği
df2.plot.barh(stacked=True) ......................................570
Uygulama: pd.to_datetime DATE HİSTOGRAM
map(lambda d: d.month).plot(kind='hist') .................571
Uygulama: Pasta(Pie) Grafiği PandasDataFrame.plot.pie() ..........571
XXIV
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Terminoloji ..................................................................................................... 576

Kaynaklar …………………………………………………………………………………………………. 581


Değinilen Kaynaklar .................................................................................... 581
Python Programlama Dili ve Uygulamaları Kaynakları ............................... 582
Python BİLİM SCIENCE PAKETİ: Numpy(Numeric Python), SciPy(Scientific
Python),Matplotlib, Pandas ............................................................... 584
Numpy .......................................................................................... 584
Scipy ............................................................................................. 589
Matplotlib ..................................................................................... 590
Pandas ........................................................................................... 596
Seaborn ………………………………………………………………………………………..………… 599
Python GUI Design ..................................................................................... 601
Python DNA ve Biopython DNA ................................................................. 602
Diğer ........................................................................................................... 603

XXV
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

ÖNSÖZ
5 sene önce İstanbul’da keşfettiğim ve insanlığın en eski eserlerini
barındıran paleolitik kültürün buluntuları üzerinde çalışırken ve ilgili 17
makaleyi yazıp yayınlarken teknik konularda alanda çok büyük boşluk
olduğunu görüp, İstanbul’da kurulmak üzere teknik kökenli bir Yazıt Bilim
ve Arkeolji Araştırma Enstitüsü’nün projesini hazırlamaya başladım. Bu
Enstitü projesini hazırlarken ders programlarının detaylarında Python’a
dalınca ve 7-8 adet defter kitap şeklinde çalışır programlardan, örnek
programlardan ve notlarımdan oluşan dijital not defterleri oluştu. Bu
Python çalışmalarının bir kısmı olan “Python VTK Patraview ile Bilimsel
Görselleştirme” başlıklı kitabı “Türkçe kaynak yok, dijital rafda kalmasın
üniversite öğrencilerine akademisyenlere kaynak olsun” deyip ISBN de alıp
şahıs yayıncı olarak dijital olarak pdf olarak Resersarchgate ve
academia.edu ‘da Eylül 2018’de yayınladım.

VTK konusunda Türkçe kaynak yoktu. İngilizcede de özellikle vektör


alanı görselleştirmesi için kaynak yoktu. Alanı programın içine aktaran
algoritma kısmı ise hiçbir yerde yok. Kendi çözümlememdi. Bu nedenle
kalıcı bilgi olsun Türkçe kaynak olsun bilim ortamında diye yayınladım.

“Python ile Programlama” cildi ve bu “Python ile Bilimsel Programla”


ise İngilizce çok kaynak olduğu acelesi olmadığı için “Python Numpy ile ilgili
her yerde bilgi var, sonra toparlarım öncelikli bir gereksinim değil” dedim
ve bekledi. Evet İngilizce kaynak çok ama böyle düzenli hepsi el altında olan
ansikkooedik tarz bir kitabın değeri başka. Bunları kendim için
hazırlamıştım. Hem tüm komutların düzenli zihnimde kalması için hem de
üzerinden zaman geçtiğinde unutulan detay var ise kolay hatırlamak için.
Şimdi bunu da öğrencilerin faydasına olur diye yayınlıyorum. İTÜ Makina
da bile artık Fortran yerine Python öğretilmeye başlanmış. Bir çok kişiye
faydalı olacağını düşünüyorum.

Artı yapay zekadaki Veri Bilimi(Data Science) ve Makine


Öğrenmesi’nde(Machine Learning) de Numpy’nin Numeric Python’un
Pandas ile birlikte kullanımını görünce bu notların da ara ara toparlamasını
yaptım.

XXVI
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
İstanbul Arkeolojik keşfimdeki bulguları belirlemelerimi anlattığım
makalelerin 13ncüsünün ardından da, “arada programlama/kodlama
pratikleri yapmanın diğer alanlardaki çalışmalara da pozitif etkisi olduğu
için” arada bu kitabı da tamamlamaya başladım.

Kitabın içindeki modüller Numpy, Scipy, Matplotlib ve Pandas Python


un bilim(Science) paketi. Numpy(Numeric/Sayısal Python)
Matpotlib(grafik çizim kütüphanesi) ile birlikde bugüne kadar
üniversitelerde çok geniş kullanımı olan Matlab’e alternatif. Numpy matris
cebri lineer cebir konularında en az Matlab kadar etkin.

Numpy’nin ardından Veri Bilimi(Data Science) paketi Pandas’ın da belli


özelliklerini netleştirip örnek uygulamalarla anlatalım dedik. Bu numpy ve
pandas’ın birlikde kullanıldığı Veri Biimi(Data Science), Makine
Öğrennesi(Machine Learning) için de bir ön hazırlık olur.

Bilim paketinden bahsedip Matplotlib’i anlatmadan geçmeyelim deyip


Matpolotlib ile grafik çizimlerinden örneklee ekleyip bir Matplotlib bölümü
de eklemeye karar verdim.

Kitabın içindeki konuların hitap ettiği kesim Lise matematiği ile başlar.
Üniversite yüksek matematik ve uygulama alanları ile devam eder.
Örneğin Matris cebri(Matrix Algebra) . matris tanımı, matris tersi
transpozesi..matriks çarpımı, vektör tanımı vb. Matplotlib ile fonksiyonların
görselleştirilmesi özellikle lise öğrencileri için matematikte görselleştirme
ile fonksiyonları görebilmesi ve ilerisinde çeşitli alanların mesleki
uygulamalarında çok faydalı.

Python ve bilim paketi Numpy Scipy Pandas Matplotlib bilim insanı


için olmazsa olmazlar. El altında bulunması gereken bilim araçları .

Yapay zekada(Artificial Intelligence), Veri Biliminde(Data Science) ve


Makine Öğrenmesi’nde(Machine Learning) gibi konularda da Numpy’nin
Numeric Python’un, Veri Analizi(Data Analysis) modülü Pandas ile birlikte
kullanımı olduğunu da belirtelim.

Örneğin 2 Boyutlu Dağılım(2D Scatter) Çizimi Yapay Zeka(Artificial


Intelligence) ın bir alanı bir alt başlığı olan Makine Öğrenmesi (Machine
Learning)’ de bir metod.
XXVII
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Yapay zeka ve yapay zekadaki Makine Öğrenmesi(machine Learning)
uygulamaları bu kitabın konusu değil ama Python un Numpy modülünün
matrislerle ve vektörlerle ilgili kısmı üniversitelerde Makine Öğrenmesi
derslerinde öğretilen konular.

Buradaki örnekleri ile anlattığımız Numpy, Matplotlib ve Pandas


fonksiyonlarını öğrenmenin programlamanın kullanıldığı bir çok alanda
faydası olduğunu görüyoruz.

Numpy 3 boyutlu modelleme ve simülasyon paketi Blender ‘ın


içindeki Python’da var. Blender’a Numpy eklemek gerekmiyor. Numpy ile
ilk denemelerimi 11.2017’de Blendar ‘da yapmıştım.
Asıl burada kullandığımız dış Python dediğim bağımsız çalışan
Python’ a ise Numpy ‘yi ayrıca yüklemek gerekiyor.
Python Numpy Pandas modüllerinin yüklemelerininin nasıl
yapılacağı bilgisini de, bilgisayarınızda hiç Python yokmuş gibi düşünerek ,
kitabın başında anlatıyoruz.. Çünkü gençlerden veya konuya yeni
başlayanlardan bu sıfır bilgi durumunda olanlar olabilir. Böylece sıfırdan
buradaki örnekleri çalıştırabilecek durumda olacak bu kitabın okuyucuları.

Kitabın düzenlemesini ve rötuşlarını yaparken Einstein’ın Genel


Görecelik kuramı ile ilgili eski notlarıma da bakayım dedim. Genel
Görecelik’te uzay zaman denklemlerindeki (Einstein Alan Denklemleri
/Einstein Field Equations) tensör kavramı tekrar gündeme Python Numpy
örnekleri ile gelince ve makine öğrenmesinde(machine learning) de tensör
kodlamanın kullanıldığını görünce kitaba tensör tanımını ve uygulamaları
içeren bir bölüm daha ekledim(Bölüm I.5).
Yine düzenleme sırasında, Makine Öğrenmesinde ve bazı finans
progranlarında geçen Scipy fonksiyonu olan Matrisi Çarpanlarına Ayırma
(Matrix Factorization/Lower Upper Factorization/ LU Matrix
Decomposition) scipy.linalg.lu(A) konusunu ekledik(II.2)

XXVIII
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Matpoltlib çizim modülünü anlattığımız kısma eklediğimiz dağılım


(scatter) çizimi kısmı, ilişkilendirme(regression), kümeleme
(clustering) gibi konuları ile, Python'a eklenen Seaborn istatiksel grafik
çizimi modülü ve Scikit-learn makina öğrenmesi modülü ile makina
öğrenmesi konusuna doğru devam eder. Yani bu kısım makina
öğrenmesindeki görselleştirmenin başlangıcıdır, girişidir. Bu iki modülü
daha sonra ayrı birer çalışma olarak yayınlayacağız.

Sonradan bir powerpoint sunumunda veya makale kitap çalışmasında


veya web sayfasında kullanmak için Matplotlib’de çizdirdiğiniz her grafiği
çizimi aynı zamanda pyplot.savefig(“C:/ /resim.jpg”) ile jpg olarak da
kaydedebilirsiniz.
Kitabın kullanımı için tavsiyem, 633 sayfalık bir kitapta aradığınıza
ulaşmak için önce İçindekiler’ e bakacaksınız. Konular, başlıklar ve
uygulamaların ne ile ilgili olduğu gayet net. Aradığınız konunun hangi
sayfada bölümde olduğunu gördükten sonra, bu kitabı pdf olarak
hazırladığım için, soldaki menüden bölümün , uygulamanın üzerine çift
tıklayarak o kısma ulaşabilirsiniz.
Veri Görselleştirmesi ve İnfografikler (Data Visualization ve
Infographics)
Python ile Veri Görselleştirmesinde Matploblib’in içindeki Pylab ve
Pyplot’dan başka bağımsız Python modülü olarak Seaborn ve web uygulamaları
için Plotly ve Bokeh vardır. Bu üç veri görselleştirmesi modülünü bu kitapta
incelemeyeceğiz. Sonra başka bir çalışma ile yayınlayabiliriz. Bu çalışmada
Matplotlib‘in Pylab ve Pyplot Veri Görselleştirme, grafik çizimi programlarını
uygulamalar ile inceleyeceğiz.

XXIX
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Grafiklerle örnek verdiğimiz Kümeleme(clustering) ve İlişkilendirme


(regression) aynı zamanda makine öğrenmesinin de bir alt alanıdır.

İlk önce hiç kaynağı olmayanı VTK’yı yayınladık. Türkçe hiç kaynak
yok, İngilizcesinde ise yurtdışında birçok üniversitenin birçok bölümünde
okutulmasına rağmen direkt program içinden nasıl vektör
oluşturulacağının algoritması kodları hiçbir İngilizce çalışmada kitapta yok.
Bu yüzden VTK kitabı bir gereksinimdi.

Bu İkinci kitap Bilim Paketinde ise internette birçok kaynak var. Ama
derli düzenli hepsi çalışır programlardan oluşan ve bazıları başka yerlerde
olmayan çözümlemeleri içeren bu kitap da alanda bir ihtiyaç ve gereksinim.
Her şeyden önce de Türkçe. Bu da uzun bir süre bir boşluğu dolduracak.

Bu kitaptaki bilim paketindeki modüller Numpy(Numeric Python),


SciPy(Scientific Python), Matplotlib, Pandas, birçok alanın da kökeni.
Örneğin makine öğrenmesinin ,örneğin Veri Bilimi(Data Science) ın, hatta
robotiğin. Teknikte ve bilimde birçok alan bu modüllere eklenen yeni
modüller(kütüphaneler) ile devam ediyor.

Türkçe bir kaynak olarak, birçok komutun örnekleri ile bir arada
bulunduğu ansiklopedi tarzı bu Python Bilim Paketinin lise öğrencilerinden
üniversite, yüksek lisans, doktora öğrencilerine kadar, hatta profesörlerine
kadar veya meslekte olup da öğrenme gereksinimi olanlara kadar geniş bir
kesime faydalı olması dileği ile.

Yük.Müh.N.Derya Varol
24 Eylül 2021, İstanbul

XXX
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

GİRİŞ
Açıklamaların çoğunu programın içine açıklama satırlarına yazdım.
Programlardaki # ile başlayan açıklama satırlarını okuyarak neyin ne
olduğu anlaşılabilir. # ile başlayan açıklama satırları altlarındaki kod
satırlarını açıklar.
Bol örnek ile anlatım yaptık. Soğuk fonksiyon açıklamaları ile değil,
örneklerle ve örnekler içindeki açıklama satırları ile anlattık daha çok.

Numpy de Matplotlib de adeta bir okyanus. Mümkün olduğu kadar çok


örnekle bu okyanusların sularında dolaşıyoruz bu kitapta. Düzenli bir
rotayla tabi.

Python ‘un Yüklenmesi


Burada bir zorluk yok. Klasik Windows programı gibi yükleniyor.
Yalnız yüklerken Python’u yükleyeceğiniz dizini klasörü belirleyebilirsiniz.
Yeni bir klasör oluşturabilirsiniz. Pythonun yüklendiği bu klasörün adresini
bir kenara not alın. Sonradan bu adresi program içinden bulmayı da
göreceğiz.

Kitaptaki uygulamaların bir kısmını Python 3.6.3 ile, bir kısmını da


Python 3.7.0 ile yapdık. [5] Şu anki bu kitabın rötuşlarının yapıldığı zaman
Eylül 2021 itibari ile en son sürüm 3.9.7 idi. Alttaki adresden bu kitabı
okuduğunuzdaki Python’un son sürümünü yükleyebilirsiniz. Çünkü sürekli
yeni sürüm güncellemeleri olmakta.

[5] https://www.python.org/downloads/

1
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Scipy, Matpoltlib, Pandas Modüllerinin eklentilerinin


Python’a eklenmesi
Öncelikle Pythonun bilgisayara önceden yüklenmiş olması lazım.

Bilgisayarınıza numpy scipy matplotlib ve pandas da önceden eklendi ise


bu kısmı geçebilirsiniz. Ekli değillerse de çok faydalı bir bölüm.Çünkü internetde
bu kadar net gösteren bir bilgi yok. Dağınık ve tam değil internetdeki ilgili
bilgiler.
Hemen yüklemeye geçelim.

Python’un yüklü olduğu dizin


Yardımcı eklentilerin yüklenmesinde Python ‘a eklenmesinde Python’un
bilgisayarda yüklü olduğu dizinin bilinmesi gerekli.
Python ‘un yüklü olduğu dizini bilmeyenler bu şekilde bulabilirler.
Python’u yüklerken dizini not alın demişdik. oldu ya notunuzu
bulamadınız.
Pythona alttaki komutları yazıp çalıştırarak pythonun yüklü olduğu dizini
görebilirsiniz.

import sys
print(sys.path)

2
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Yardımcı Eklenti : NumPy Numerik Python Modülünün


Yüklenmesi
Pythonun hemen ardından bilim paketinin bir parçası olan Numerik
Pythonu Numpy yi indiricez, Python’a ekleyeceğiz.

Direkt arama büyüteç simgesine tıklıyıp cmd yazınca


Komut penceresi simgesi geliyor. Üzerine çift tıklanıyor.
Ve komut istemi penceresini açıyoruz

3
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Komut İstemine Köşedeki Windows simgesine sağ tıklayıp


gelen menüden de ulaşabiliriz.

4
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

komut istemi penceresi

CMD Komut Penceresi’ nde

Python\Python36\Scripts\ klasörünün bilgisayarınızda bulunduğu adresi


Yazıp enter lıyoruz. pip uygun sürümü bulup, bilgisayara indirip Python’a
ekliyor.

C:\Programs\Python\Python36\Scripts\pip install numpy

“enter” layınca direkt pip.exe ile, ilgili python kaynağından bilgisayara


uyumlu numpy eklentisi bulunup bilgisayara indirilip(download edilip)
yükleniyor.
Buradaki pip.exe adlı MIT tarafından yazılmış pythonun eklenti yükleme
programını çalıştırmak için.
Bu adresi önceden Word de yazıp kopyalıyıp buraya yapıştırırsanız da
kolaylık olur.

5
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Yardımcı Eklenti : Matplotlib Modülünün Yüklenmesi


Matplotlib’in yüklenmesi de Numpy gibi, python a modül olarak ekleniyor.

dan cmd yazıp komut istemi penceresini açıyoruz

CMD de

C:\Programs\Python\Python36\Scripts\pip install matplotlib

Yazıp enterlıyoruz . pip uygun sürümü bulup indirip python ‘a ekliyor.

Yardımcı Eklenti : Scipy Scientific Python Modülünün


Yüklenmesi
Numpy ve Matplotlib’in yüklenmesindeki aynı yöntemi kullanıyoruz.

dan cmd yazıp komut istemi penceresini açıyoruz

CMD de

C:\Programs\Python\Python36\Scripts\pip install scipy

Yazıp enterlıyoruz . pip uygun sürümü bulup indirip python ‘a ekliyor

6
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Yardımcı Eklenti: Veri Tabanı Tabloları için Pandas Modülü


‘nün yüklenmesi
Pandas ın yüklenmesi Numpy gibi python a modül olarak ekleniyor

dan cmd yazıp komut istemi penceresini açıyoruz

CMD de
C:\Programs\Python\Python36\Scripts\pip install pandas
Yazıp enter . pip uygun sürümü bulup indirip python a ekliyor.
Pandas 0.21.0 idi yeni yüklemede 0.23.4

Pip eski versiyon derse pip in güncellenmesi


Python a bazı yeni modülleri pip ile yüklerken pip eski versiyon diye uyarı
verip eklentiyi yükleyemeyebilir. Bu durumu da nasıl çözeceğimizin bilgisini
ekleyelim buraya.
Yine cmd yi açıyoruz

bul a cmd yazıp cmd komut istemi penceresini açıyoruz.


C:\Python\python -m pip install --upgrade pip
Yazıp pip i güncelliyoruz.
Burada bir çizgi eksi veya fazla yazsanız çalışmaz. Bu bilgiler bu yüzden
pratik için değerli. Bulana kadar uğraştığım deneyip uyguladığım satırlar.

Python ve Bilim Paketimiz hazır. Şimdi uygulamalara kod örneklerine


başlayabiliriz.
İlk Numpy Numerik Python örnekleri ile pratiklere başlayacağız.

7
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

PYTHON ÇALIŞMA ORTAMI: IDLE


Örnekleri Python 3.7 versiyonu ile yapıcaz.
Pythonu yükledikden sonra köşedeki simgeden Windows programlardan
Çalıştırabilirsiniz.

Veya daha kolay ulaşmak için simgesini görev çubuğuna sabitleyebilirsiniz.

8
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Python IDLE Integrated Development and Learning


Environment
IDLE Python’un birleşik Geliştirme ve Öğrenme Ortamı’dır. Python IDLE
python kodunu çalıştıracağınız bir txt editörüdür.
PYTHON SHELL

Python’un Editör Penceresi


Bu ilk pencerenin file menüsünden File—New File ile ikinci pencereyi Run
menüsünün olduğu pencereyi Editor Window ‘u açmalıyız.

Yazdığımız programı çalıştırdığımız Run Menu sadece bu Editor window da


görünüyor.

9
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Bu yeni pencerede

İlk Python kodunu yazalım

print ("Bu kitaptaki ilk Python kodu çalışmaya hazır")


print ("Bilimsel kodlamaya başlıyoruz")

program satırlarını yazıyoruz adlandırıp save ediyoruz

Run ile de çalışıyor. Shell penceresine print in içindekini yazdı.


Bu sadece programın çalışma mantığına giriş için bir örnek.Bu kitapta çok daha
fazlasını yapacağız.

10
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Pythonu ilk çalıştırdığımızda Shell penceresinin değil de direkt programı


yazdığımız Editor penceresini açmak istiyorsak ayarlardan bunu yapabiliriz.
Options—Configure IDLE den – General tab ına tıklıyıp

Open Edit Window u seçip ok i tıklıyoruz.

Pratiklere hazırız.

11
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

I. PYTHON NUMPY / NUMERIC PYTHON


/SAYISAL PİTON.
NumPy "Numeric Python" ya da "Numerical Python" un kısaltmasıdır.
Türkçede Sayısal Python diyebiliriz. Matematiksel ve özellikle çok boyutlu
diziler ve matrislerle ilgili sayısal birçok fonksiyona sahiptir.

Python Numpy, Scipy and Matplotlib ile birlikte bu alanda önceden


kullanılan Matlab yerine kullanılabilir. Üniversitelerde de giderek Matlab yerine
bu bilim paketine geçilmektedir.

NUMPY , 3 Boyutlu tasarım ve Animasyon programı BLENDER’da da var ve


çok Faydalı

12
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

I.1. NUMPY DİZİLERİ(NUMPY ARRAYS)


Liste(List): Python’dadır. Elemanları olan sıralı bir listedir. Sıralı demekle ilk
eleman ikinci eleman üçüncü eleman gibi. Elemanlar sayı da olabilir. Ad, soyad
gibi karakterlerden oluşan elemanlar de olabilir.
Dizi( Array): Dizi ise Numpy’dedir. import numpy den sonra kullanılabilir.
Dizi de sıralı elemanlardan oluşur. Matematiksel işlem uygulanabilir.
Örneklerde göreceğiz.

Liste(list) farklı tür elemanlardan oluşabilir. Örneğin aynı listenin içinde


sayı ve ad bulunabilir.(List elements can be different data types)
Dizi(array) ise sadece aynı tür elemanlardan oluşur. Örneğin sadece
sayılardan.(Array only consists of elements belonging to the same data type)

Numpy Dizileri numpy.array np.array


import numpy as np dendiğinde bu np.array

2nci import yöntemi


numpy import *

13
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Dizi Array tanımı için illa numpy


yüklenecek ve np.array() ile tanımlanacak

# Dizi Array tanımı için illa numpy yüklenecek ve np.array() ile


tanımlanacak
# Dizi=np.array([[1, 2, 3], [4, 5, 6]])
# Numpy'deki gibi yazsak da bu listedir ve 1 boyutludur. ndim komutu
bunda çalışmaz.
Liste=([[1, 2, 3], [4, 5, 6]])
print(type(Liste))
print(Liste)

14
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: 1 Boyutlu Numpy String Dizisi(Array)


import numpy as np

D=np.array(["kitap","kalem"])
print(D)
print("type(D)")
print(type(D))
print("np.ndim(D)D Dizisinin(Tensörünün) Derecesi(Rank'ı)")
print(np.ndim(D))

UYGULAMA: 2 Boyutlu Numpy String Dizisi(Array)


import numpy as np

D=np.array([["kitap","kalem"],["kağıt","bilgisayar"]])
print(D)
print("type(D)")
print(type(D))
print("np.ndim(D)D Dizisinin(Tensörünün) Derecesi(Rank'ı)")
print(np.ndim(D))

15
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: np.chararray((3, 3))


import numpy as np

charar = np.chararray((3, 3))


charar[:] = 'a'
print(charar)

Bu halde sadece kelimenin ilk harfini alıyor. Bir eleman kelimeden


oluşmuyor.
class numpy.chararray(shape, itemsize=1, unicode=False, buffer=None,
offset=0, strides=None, order=None)

import numpy as np

charar = np.chararray((3, 3),itemsize=3)


charar[:] = 'Ben'
print(charar)

itemsize=3 diyince 3 harfli Ben’i yazdı

import numpy as np
charar = np.chararray((3, 3),itemsize=6)
charar[:] = 'Kitap'
print(charar)
karakter sayısı itemsize dan az olabiliyor. Örneğin kitap 5 harfli

16
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: String ve sayıyı aynı dizide


kullanmak record array numpy.rec.fromarrays()
import numpy

a = numpy.array(['a', 'b', 'c', 'd', 'e'])


b = numpy.arange(5)

records = numpy.rec.fromarrays((a, b), names=('keys', 'data'))


print(records)
print(records['keys'])
print(records['data'])

chararray(['a', 'b', 'c', 'd', 'e'], dtype='|S1')

UYGULAMA: String ve sayıyı aynı dizide


kullanmak structured array
with a standard array by specifying the datatype of the array. This is
known as a "structured array":

import numpy

arr = numpy.array([('a', 0), ('b', 1)], dtype=([('keys', '|S1'), ('data', 'i8')]))


print(arr)

17
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: String ve sayıyı aynı dizide kullanmak


object türü Datatype dtype='O'
import numpy as np

z = np.zeros((2,2), dtype='U2')
obj = np.ones((2,1), dtype='O')
a=np.hstack([obj, z])
print(a)
print("type(a)")
print(type(a))

Numpy dizleri her zaman homejendir. Fakat tüm python


nesneleri(objects) nesneleri object veri türü altında toplanabilir.
data-type = ‘object’
Ve integer, string, list, dict gibi farklı python nesnelerini veri türüne
python nesnesi diyerek bir arada toplamak mümkündür.
dtype = object
import numpy as np

a=np.array([10,20, [10,20],{"x":1, "y":2}], dtype = object )


print(a)
print("type(a)")
print(type(a))

18
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: String ve sayıyı aynı dizide kullanmak


rfn.merge_arrays((A, B))
numpy.lib.recfunctions.merge_arrays fonksiyonu farklı veri türlerindeki
numpy dizilerini ya structured dizi ya da record dizi şeklinde birleştirmek için
kullanılır.
import numpy as np
from numpy.lib import recfunctions as rfn

A = np.array([1, 2, 3])
B = np.array(['a', 'b', 'c'])
b = rfn.merge_arrays((A, B))
print(b)
print("type(b)")
print(type(b))

19
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: list tanımı A=[ , , , ]


import numpy as np
A=[20.1, 20.8, 21.9, 22.5, 22.7, 22.3, 21.8, 21.2, 20.9, 20.1]

UYGULAMA: list ve numpy.array dizisi tanımı


numpy.array([ , , , ]) ve liste(list) yi 1 boyutlu Numpy
dizisi(array) yapmak numpy.array(A)
import numpy as np

ddegerleri = [22.1, 20.9, 21.9, 22.5, 22.7, 22.3, 21.8, 21.2, 22.9, 22.1]
print(type(ddegerleri))
print(ddegerleri)

# np.array() ile listeyi dizi yapıyoruz.


D = np.array(ddegerleri)
print(type(D))
print(D)

ddegerleri bir liste(list)


np.array(ddegerleri) ile ise ndarray oluyor. Dizi oluyor.
ndarray demek n boyutlu(dimentional) dizi( array) demek.

20
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: list ve numpy.array dizisi tanımı


a ve b ile list tanımladık, d ile ise numpy.array dizisi tanımladık.

import numpy as np
# a ve b list dir.
a=[1,2,3,4,5,6]
b=([1,2,3,4,5,6])
# d ise dizi(array) dir
d=np.array([1,2,3,4,5,6])
print(type(a))
print(type(b))
print(type(d))
print(a)
print(b)
print(d)

21
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: list ve numpy.array dizisi farkı


numpy.array() e aritmetik işlem uygulanabilir
import numpy as np
a=[1,2,3,4,5,6]
b=np.array([1,2,3,4,5,6])
c=2*a
d=2*b
print(type(a))
print(type(b))
print(type(c))
print(type(d))
print(a)
print(b)
print(c)
print(d)

numpy.array i dizisini 2 ile çarpabilirsiniz yani aritmetik işlem uygulayabilirsiniz,


list e uygulayamazsınız.

22
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: List Array farkı. Array ‘e fonksiyon


uygulanabiliyor. List ‘e uygulanamıyor
import numpy as np
dizi = np.array([6, 8, 10, 12, 14])
a=dizi/2.0
print(a)

Direkt list i 3 e bölmek istersek hata veriyor


liste = [6, 8, 10, 12, 14]
a=liste/2.0
print(a)

23
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: list numpy.array() farkı

24
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Numpy Dizisi Attributes: Dizinin Boyutu


ndim (the number of dimensions) , Şekli shape (the
size of each dimension) ve Büyüklüğü size (the total
size of the array)
import numpy as np

x1 = np.random.randint(10, size=6) # Bir Boyutlu Dizi


x2 = np.random.randint(10, size=(3, 4)) # İki Boyutlu Dizi
x3 = np.random.randint(10, size=(3, 4, 5)) # Üç Boyutlu Dizi
print(x3)
print("x3 ndim: ", x3.ndim)
print("x3 shape:", x3.shape)
print("x3 size: ", x3.size)

3 boyutlu dizi veya matris

25
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: dizinin boyutu ndim, shape, büyüklüğü


size
import numpy as np
x=np.array([1, 2, 3])
print(x)
print("x ndim: ", x.ndim)
print("x shape:", x.shape)
print("x size: ", x.size)

y=np.array([[1, 2, 3],[2, 3, 4],[5, 6, 7]])


print(y)
print("y ndim: ", y.ndim)
print("y shape:", y.shape)
print("y size: ", y.size)

26
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Dizinin Şekil Özelliği( Shape property)

import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]], float)
print(a.shape)

bu 2 ye 3 anlamındaki tanıma tuple deniyor. Dizinin boyutlarını


gösteriyor.

Tuple: çok öğeli,değişkenler grubu

UYGULAMA: Dizinin(array) Büyüklüğü .size

import numpy as np
d = np.array([1, 2, 3, 4, 8, 3, 1, 2, 10])
print("Dizinin büyüklüğü(size):")
print(d.size)

27
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: list( ) tanımı ve for ile tek tek elemanlara


işlem uygulamak.
A=[20.1, 20.8, 21.9, 22.5, 22.7, 22.3, 21.8, 21.2, 20.9, 20.1]
B = [ x*9/5 + 32 for x in A]

List Python’un içindeki fonksiyon,


Numpy modülü yüklenmeden de çalışıyor.
Ama numpy.array numpy modülünün fonksiyonu ve numpy yüklenince
çalışlıyor.

List Köşeli parantez(square brackets) içindeki virgülle ayrılmış değerler


(comma-separated values (items))
Listedeki değerler aynı tür olmak zorunda değil.

28
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Numpy Dizisi(array) Elemanları


karakterlerden de oluşabilir.

import numpy as np
Dizi = np.array(["a", "b", "c"])
print(Dizi)

Karakterden oluşan dizinin elemanlarını “ “ tırnak içinde göstermeliyiz.


Sadece a dese idik, tırnak kullanmasa idik, a yı değişken olarak kabul eder,
tanımlanmadığı için de hata verirdi, çalışmazdı.

29
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Dizinin İlk ekseninin boyu(length of the


first axis) len(a) fonksiyonu (function)
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]], float)
print(a)
print("Dizinin Boyutu(Length):")
print(len(a))
print(a.shape)

Burada dizinin boyu yani satır sayısı 2 sütun sayısı ise 3

30
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Tür type() numpy.ndarray


import numpy as np
D=np.array([1, 2, 3])
print(D)
print(type(D))

np.array([1, 2, 3.0])
array([ 1., 2., 3.])

Minimum boyutlar 2:
np.array([1, 2, 3], ndmin=2)
array([[1, 2, 3]])

Veri Türü(Type) : kompleks Sayı


np.array([1, 2, 3], dtype=complex)
array([ 1.+0.j, 2.+0.j, 3.+0.j])

31
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Veri Türü(Data type) .dtype int32


import numpy as np
b = np.array([1,2,3,4,5,6])
print(b.dtype)

yani integer tamsayı

UYGULAMA: Veri Türü(Data type) .dtype float64


import numpy as np
b = np.array([1., 2., 3.,4.,5.,6.])
print(b.dtype)

UYGULAMA: Veri Türü(Data type) .dtype


Her numpy dizisi aynı tür elemanlardan oluşur.

import numpy as np
x = np.array([1, 2])
# Veri Türü (datatype)
print(x.dtype)

32
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Veri Türü(Data type) .dtype


import numpy as np
x = np.array([1.0, 2.0])
# Veri Türü (datatype)
print(x.dtype)

Uygulama: Veri Türü(Data type) dtype ı belirlemek


numpy.array([ , ], dtype=numpy.int64)
import numpy as np
x = np.array([1, 2], dtype=np.int64) # Veri Türünü( datatype) belirlemek
print(x.dtype)

Uygulama: Veri Türü(Data type) dtype ı belirlemek


numpy.array([ , ], dtype=numpy.float64)
import numpy as np
x = np.array([[1,2],[3,4]], dtype=np.float64)
print(x.dtype)

33
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: in Dizi/Array içinde mi? Elemanı mı?


import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]], float)
print(2 in a)
print(0 in a)

“İn” değerlerin dizinin içinden olup olmadığını belirlemek için kullanılır.

UYGULAMA: np.array tanımlaması ve in ile eleman var


mı sorusu
A dizisini bu şekilde tanımladım
a=np.array([1, 2, 6, 9, 12, 19, 22, 36, 43])
matris tanımından farkı köşeli parantezler.. matris tanımında iç parantezler de
yuvarlak (curved)
8 in a dedim
False dedi yani dizide 8 yok
6 in a dedim
True dedi yani dizide 6 var.
Aslında yapay zeka mantığının bir birimi bu true false

34
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: in A’nın Elemanı mı? A’da var mı?


import numpy as np
A=np.array([1, 2, 6, 9, 12, 19, 22, 36, 43])
print(8 in A)
#Program içinde print yazılmazsa bu false sonucu dışarı çıkmıyor yazılmıyor

import numpy as np
a=np.array([1, 2, 6, 9, 12, 19, 22, 36, 43])
print(36 in a)

35
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: in içinde mi? Elemanı mı?


import numpy as np
a=np.array([1, 2, 6, 9, 12, 19, 22, 36, 43])
print ((2 in a) and (36 in a))

import numpy as np
a=np.array([1, 2, 6, 9, 12, 19, 22, 36, 43])
b= ((2 in a) and (36 in a))
print(b)

UYGULAMA: in içinde mi? Elemanı mı?


import numpy as np
a=np.array([1, 2, 6, 9, 12, 19, 22, 36, 43])
b= ((2 in a) and (36 in a))
print(b)

if b==True:
print(" 2 ve 36 aynı gruptadır")

36
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Karakter Dizisi için in içinde mi?


Elemanı mı?
Yukardaki örneği elemanları karakterlerden oluşan dizi için yapıyoruz.

import numpy as np
D=np.array(["Derya", "Özlem", "Sermin"])
b= (("Derya" in D) and ("Özlem" in D))
print(D)
print(b)

if b==True:
print(" Derya ve Özlem aynı gruptadır")

37
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: np.ones(shape)
import numpy as np
A=np.ones((6,6))
print(A)

np.ones(shape) 1 değerleri ile bir dizi oluşturur.

UYGULAMA: np.zeros(shape)
import numpy as np
B=np.zeros((3,3))
print(B)

0 değerleri ile bir dizi oluşturur. Veri türü( dtype) float64 ‘dür.

38
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: np.empty(shape)
import numpy as np
# Random values
c = np.empty((2, 2))
print(c)

numpy.empty(shape, dtype = float, order = ‘C’)

UYGULAMA: numpy.empty((6, 6),dtype=int)


rastgele(random) rakamlardan dizi oluşturmak
import numpy as np
# Random values
l = np.empty((6, 6),dtype=int)
print(l)

39
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.random.normal(size=6)
import numpy as np
A=np.random.normal(size=6)
B=np.random.uniform(size=6)
C=np.random.randint(low=1, high=100, size=6)
print(A)
print(B)
print(C)

UYGULAMA: np.random.randint(low=1, high=100,


size=(6,6))
import numpy as np
A=np.random.randint(low=1, high=100, size=(6,6))
print(A)

Randint integer yani tmsayılardan gelişigüzel(rakamlar) verir

40
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.random.randint(1,200, size=(6,6))


import numpy as np
A=np.random.randint(1,200, size=(6,6))
print(A)

UYGULAMA: numpy.random.random_sample((6, 6))


import numpy as np
A=np.random.random_sample((6, 6))
print(A)

41
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: np.array()
Birden büyük boyutlardaki diziler.

import numpy as np
a=np.array([[1, 2], [3, 4], [5, 6]])
print(a)

42
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Alt sınıftan Dizi oluşturmak


Burada matristen dizi oluşturuyor.
import numpy as np
a=np.array(np.mat('1 2; 3 4'))
print(a)

UYGULAMA: DİZİ İNDEKSLERİ ARRAY INDICES


indices()

import numpy as np
a=np.indices((3,3))
print(a)

array([[[0, 0, 0], [1, 1, 1], [2, 2, 2]], [[0, 1, 2], [0, 1, 2], [0, 1, 2]]])

43
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.indices(( , )) fonksiyonu


İndexleri gösteriyor elemanları değil.
Parameters: dimensions : sequence of ints
The shape of the grid.

import numpy as np

grid = np.indices((2, 3))


print(grid.shape)
print(grid[0]) # row indices
print(grid[1]) # column indices

44
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.indices((3,3))
import numpy as np
a=np.indices((3,3))
print(a)

UYGULAMA: numpy.indices((6,6))
import numpy as np

a=np.indices((6,6))
print(a)

45
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.indices((2,2,2))
3 boyutlu dizi
Satırların indisleri
Sütunların indislerini ve
Tube ların/derinliğin/3ncü boyutun indislerini yazıyor

import numpy as np

a=np.indices((2,2,2))
print(a)

import numpy as np dendiğinde bu np.array

46
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: İndisler(indices) Bir dizi içinde


indeks(index )olarak kullanılabilir.
import numpy as np
x = np.arange(20).reshape(5, 4)
print(x)
row, col = np.indices((2, 3))
print(x[row, col])

Uygulama: İndisler(indices) Bir dizi içinde


indeks(index )olarak kullanılabilir.
import numpy as np
x = np.arange(20).reshape(5, 4)
print(x)
row, col = np.indices((2, 4))
print(x[row, col])

Örneğin x = np.arange(72).reshape(9, 8) olabilir. 8x9=72


47
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA : Dizi İndeksi(Array index)

import numpy as np
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
print(a)
print(a[0, 1])

48
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Dizi İndeksleme


u[-1] dizinin son elemanı demek

import numpy as np
u= np.array([[11, 12], [13, 14], [15, 16]])
a=u[-1]
print(a)

print(u[0,0])

Birinci satırdaki tüm elemanları (all items in the first row) görmek için, ikinci
boyut indexi (second dimension index empty) boş bırakılıyor.

print(u[0,])

49
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: ARRAY DİZİ ELEMANINI DEĞİŞTİRMEK


a[0, 0] = (TO MODIFY AN ARRAY)
import numpy as np
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
print(a)
# a[0, 0] 0 ncı satır 0 ını sütün elemanı demek
a[0, 0] = 66
print("Birinci elemanı [0,0] indisli elemanı değiştirdikten sonra")
print(a)

50
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Bir Diziyi numpy.asarray(A)[2]=2 ile


düzenlemek(elemanını değiştirmek)
NUMPY ASARRAY() NUMPY ARRAY() FARKI
Array ile bir işlem yaparken kopyası alınıyor orjinali duruyor.
Asarray ile işlem yapıldığında orijinal değişiyor***

import numpy
A = numpy.matrix(numpy.ones((3,3)))
print(A)
numpy.array(A)[2]=2
print(A)
#use numpy.asarray to modify A.
numpy.asarray(A)[2]=2
print(A)

Array bu durumda işlem yapmıyor ki array in kopyaladığı matris nerede?


Cevabı:
Array() Dizi çalışmaz, çünkü A’nın kopyasını değiştiriyorsun.
Asarray() Dizi çalışır, çünkü A ‘nın kendisini değiştiriyorsun.

51
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Numpy Dizi Dilimlele(Array Slicing)


Dilimleme parametreleri iki nokta üst üste(colon) ile ayrılır.
[başlangıç:bitiş:adım]
b = a[2:7:2] gibi

import numpy as np
a = np.arange(10)
print(a)
print (a[2:])
print(a[2:7:2] )

İki tane dilimleme yaptık.


2 den sonuna kadar (ilk elemana 0ncı eleman diyor, hatırlayalım. Yani 3ncü
elemandan sonuna kadar demek)
ve 2 den 7 ye kadar 2 şer artarak(yani 3ncü elemandan 7 ye kadar 2 şer artarak)

52
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Numpy Dizi Dilimleme(Array Slicing)


import numpy as np
a = np.arange(12)
print(a)
print(a[0])
print (a[2:6])

Uygulama: Numpy Array Slicing


import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
# slice items starting from index
print ('Şimdi diziyi index a[1:] den dilimleyeceğiz')
print (a[1:])

53
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Numpy Dizi Dilimleme (Array Slicing)


Makina öğrenmesinde (Machine Learning) de
dilimleme(slicing) ve yeniden şekillendirme(reshape) kullanılan bir
yöntem.

İki Boyutlu Dilimleme(Two-Dimensional Slicing)


(Matrix konusu)
-1 En son kolon hariç demek burada

X = [:, :-1]
X 2 boyutlu Dizi(array)

54
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: 2 Boyutlu Diziyi Dilimleme(Slicing of a


NumPy 2D array)
Bir n x n (n>m) matrisden dilimleyerek bir mxm alt matris çıkarmak.

from numpy import *


x = range(16)
x = reshape(x,(4,4))
print (x)
# 1nci Dilimleme
a=x[0:2,0:2]
print("1nci Dilimleme:")
print(a)
# 2nci Dilimleme
b=x[2:,2:]
print("2nci Dilimleme:")
print(b)

x[0:2,0:2] virgülün sağındaki 0:2 0 ıncı sütun ve 1nci sütunu al demek(2 yok)
Virgülün solundaki 0:2 0 ıncı satırı ve 1 nci satırı al demek
ÇÖZDÜK ANLADIK 0 dan 2 ye kadar demek.
Temek dioimleme(basic slicing):
x[1::2, 1::2]

55
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: 2 Boyutlu Dilimleme Numpyarray (Two-


Dimensional Slicing) x[1:-1,1:-1]
from numpy import *
x = range(16)
x = reshape(x,(4,4))
c= x[1:-1,1:-1]
print(x)
print(c)

x[1:-1,1:-1] Bu numpyarray iki boyutlu


dilimlemedir (Two-Dimensional Slicing)
x[1:-1,1:-1] Virgülün sağ tarafı 1 indisli(2nci) sütundan başla son sütuna kadar
al -1 yani son sütun yok

x[1:-1,1:-1] Virgülün sol tarafı 1 indisli satırdan başla -1 son satıra kadar. 1
son satır yok

demek

56
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: 2 Boyutlu Dilimleme Two-Dimensional


Slicing x[1::2, 1::2] bu aradaki sütunu almadan geçiyor.
from numpy import *
x = range(16)
x = reshape(x,(4,4))
print(x)
# Dilimleme(Slicing)
z=x[1::2, 1::2]
print(z)

57
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

ndarrays : N-dimentional arrays demek

UYGULAMA: numpy.asarray( ) python listesinden (list


) numpy dizisi (array) yapmak
import numpy as np
list = [1, 2, 3]
c = np.asarray(list)

58
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Listeyi(list) Dizi’ye (array) çevirme:

a = [1, 2]
np.asarray(a)
array([1, 2])

a = np.array([1, 2])
np.asarray(a) is a
True

dtype ı değiştirirsen kopyası olmaz.

a = np.array([1, 2], dtype=np.float32)


np.asarray(a, dtype=np.float32) is a
True

np.asarray(a, dtype=np.float64) is a
False

59
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

import numpy as np

# şekli shape (3, 4) olan 2nci dereceden bir matris rank=2


a = np.array([[6,6,3,2], [9,6,7,3], [2,10,4,11]])

Uygulama: reshape
from numpy import *
x = range(36)
x = reshape(x,(6,6))
print(x)

v=x[1::2, 1::2]
print(v)

1 sütun atlayarak yazmış


Ve 1 satır atlayarak yazmış

60
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: np.r_ Diziden parça çıkarıyor

import numpy as np
V = np.array([1,2,3,4,5,6 ])
Y = np.array([7,8,9,10,11,12])
A=np.r_[V[0:2],Y[0],V[3],Y[1:3],V[4:],Y[4:]]
print(A)

Sonuç:

array([ 1, 2, 7, 4, 8, 9, 5, 6, 11, 12])

ilkinden 0ıncı ve 1nci elemanları aldı


ikinciden 0ıncı elemanı aldı
ilkinden 4ncü elemanı(5nci sıradaki,çünkü sıfırdan başlıyor numaralamaya..ilk
elemana 0 diyor)

61
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Boolean Arrays ([False, False, True,]) a Bir


Bir koşul için Boolean dizisi oluşturabiliriz.

import numpy as np
x= np.array([[6, 0, 3, 3], [7, 9, 3, 5], [2, 4, 1, 6]])
print(x)
x2=(x < 6)
print(x2)

UYGULAMA: Boolean array, | boolean or


import numpy as np

A = np.array([1, 0, 1, 0, 1, 0], dtype=bool)


B = np.array([1, 1, 1, 0, 1, 1], dtype=bool)
E=A | B
print(E)

array([ True, True, True, False, True, True], dtype=bool)

62
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Boolean Dizisi , Boolean ve (and) &


Bir dizi üzerinde Boolean ifade (expression) uygulandığında , or veya and
değil, | veya & kullanılmalı.

import numpy as np
x = np.arange(10)
L=(x > 4) & (x < 8)
print(L)

array([False, False, False, False, False, True, True, True, False, False],
dtype=bool)

63
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

I.2. Numpy arange , linspace, meshgrid


Fonksiyonları(functions)

numpy.arange([start, ]stop, [step, ]dtype=None)

UYGULAMA: arange()
import numpy as np
A=np.arange(0, 6, 1)
0 dan başla 6 ya kadar 1 aralıkları ile nokta oluştur. 6 dahil değil. demek

UYGULAMA: numpy.arange() in Python range() den


farkı
import numpy as np
A=np.arange(0, 6, 1)
b=range(0,6)
print(A)
print(b)

64
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: arange( )
import numpy as np
a=np.arange(10)
print(a)

import yazmadan np.arrange denirse hata veriyor


import numpy denirse de hata veriyor
bu halde ise çalışıyor
UYGULAMA: arange()
import numpy as np
np.arange(3)

65
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

np.arange(3.0)
array([ 0., 1., 2.])

np.arange(3,7)
array([3, 4, 5, 6])

np.arange(3,7,2)
array([3, 5])

np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

np.arange(2, 10, dtype=np.float)


array([ 2., 3., 4., 5., 6., 7., 8., 9.])

np.arange(2, 3, 0.1)
array([ 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9])

66
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: linspace() linspace( ,endpoint=False)


import numpy as np

# array([ 2. , 2.25, 2.5 , 2.75, 3. ])


a=np.linspace(2.0, 3.0, num=5)
print(a)

# (array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)


b=np.linspace(2.0, 3.0, num=5, retstep=True)
print(b)

# array([ 2. , 2.2, 2.4, 2.6, 2.8])


D=np.linspace(2.0, 3.0, num=5, endpoint=False)
print(D)

67
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.linspace( ) NUMPY LINSPACE


import math
import numpy as np
N = 50 # nokta sayısı
x_ilk, x_son = -2.0, 2.0 # x doğrultusundaki sınırlar
y_ilk, y_son = -1.0, 1.0 # y doğrultusundki sınırlar
# x koordinatları ile 1 boyutlu dizi oluşturur
x = np.linspace(x_ilk, x_son, N)
# y koordinatları ile 1 boyutlu dizi oluşturur
y = np.linspace(y_ilk, y_son, N)
print('x = ', x)
print('y = ', y)

68
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Vektör Alanı koordinatlarını oluşturmada


kullanılan iki yöntem arange ve linspace ile aynı
koordinat noktalarını oluşturmak
import numpy as np
a=np.linspace(1,6,6)
b=np.arange(1,7,1)
print(type(a))
print(a)
print(type(b))
print(b)

arange() ile vektörlerin çizileceği noktaları oluştururken örneğin


np.arange(0, 7, 1) denirse “0 dan başla 7 ye kadar 1 er aralıkla nokta oluştur, 7
dahil değil” , demek. Üçüncü rakam 1 aralık genişliği
Vektör alanı koordinatlarının oluşturulmasında kullanılan iki yöntemi alt
alta yazdım bu kısa kodda. linspace() ve arange() her ikisi ile de aynı noktaları
oluşturdum.. Bilgi eksik kalmasın. soldaki python kod penceresi, sağdaki print
lerin içeriklerinin yazıldığı python shell penceresi
Üçüncü rakam arange() de aralık genişliği, linspace() de aralık sayısı

69
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

numpy.meshgrid VEKTÖREL ALAN Tanımlamakta


kullanılıyor

X, Y = np.meshgrid(x, y) # generates a mesh grid


BU SATIR DA ÇALIŞDI,HATA VERMEDİ

Meshgrid Python Makine Öğrenmezinde de (Machine


Learning) kullanılıtor.

70
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.meshgrid(x, y)
import numpy as np

nx, ny = (3, 2)
x = np.linspace(0, 1, nx)
print ("x =", x)
y = np.linspace(0, 1, ny)
print ("y =", y)

xv, yv = np.meshgrid(x, y)
print ("xv_1 =", xv)
print ("yv_1 =",yv)

71
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.meshgrid(x, y)
import numpy as np

nx, ny = (3, 2)
x = np.linspace(0, 1, nx)
print ("x =", x)
y = np.linspace(0, 1, ny)
print ("y =", y)

xv, yv = np.meshgrid(x, y)
print ("xv_1 =", xv)
print ("yv_1 =",yv)
xv, yv = np.meshgrid(x, y, sparse=True) # aralıklı diziler oluşturur
print ("xv_2 =", xv)
print ("yv_2 =", yv)

72
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.meshgrid(x, y)
import numpy
x = numpy.array([1, 2, 3])
y = numpy.array([10, 20, 30])
XX, YY = numpy.meshgrid(x, y)
ZZ = XX + YY

print(ZZ)

array([[11, 12, 13],


[21, 22, 23],
[31, 32, 33]])

73
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Numpy Mesh grid functions: meshgrid mgrid ogrid


ndgrid
UYGULAMA: Numpy.mgrid[1:11:2, -12:-3:3]
Meshgrid fonksiyonu koordinat dizileri( coordinate arrays)
oluşturmakta faydalı. ( to vectorize function evaluations over a grid.)

mgrid ‘in çıktısı mesgrid’in transpozesidir. (transpose of meshgrid)

x2, y2 = np.mgrid[1:11:2, -12:-3:3]


print(x2) # 5x3 array
print(y2) # 5x3 array
np.all(x1 == x2.T)
np.all(y2 == y2.T)

74
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: ogrid[1:11:2, -12:-3:3]

import numpy as np
a, b = np.ogrid[1:11:2, -12:-3:3]
print(a) # 5x1 array

array([[1],
[3],
[5],
[7],
[9]])
>>> b # 1x3 array

array([[-12, -9, -6]])


and the 5x1 array a is broadcasted with the 1x3 array b to form two 5x3 arrays

>>> x2, y2 = np.broadcast_arrays(a, b)


>>> x2 # 5x3 array
array([[1, 1, 1],
[3, 3, 3],
[5, 5, 5],
[7, 7, 7],
[9, 9, 9]])
>>> y2 # 5x3 array
array([[-12, -9, -6],
[-12, -9, -6],
[-12, -9, -6],
[-12, -9, -6],
[-12, -9, -6]])

75
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

I.3. NUMPY İLE VEKTÖR TANIMLAMA


a=np.array([x, y, z])
Vektör Toplaması ve Çıkartması (Vector Addition and
Subtraction)
Vektörlerin Toplanması(Vector Addition) nın grafik gösterimi.

a ve b b vektörünü paralel olarak a ‘nın ucuna taşıyoruz. Ve a ‘nın


başlangıç noktasından b ‘nin uç noktasına çizilen vektör iki vektörün toplamı
oluyor.

Bir cisme etkiyen iki kuvvet olsun. Bunların toplamı birinci kuvveti
paralel olarak ikincinin bitim noktasına taşımak ile belirlenip çizilir.
(parallelogram of forces.)

76
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: İKİ BOYUTLU İKİ VEKTÖRÜ TOPLAMAK


import numpy as np

a = np.array([3,2])
b = np.array([5,1])
c=a+b
print(c)

77
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

3 BOYUTLU VEKTÖR TANIMI

a= np.array([3,2,6]) da 3 boyutlu vektörü tanımlamalı

UYGULAMA: 3 boyutlu vektör np.array([2, 6, 22])


Satır Vektörü (Row Vector/ row matrix) 1 × n matrisidir. Burada 1x3 matrisi.

import numpy as np
GirişVektörü = np.array([2, 6, 22])
print("Giriş Vektörü")
print(GirişVektörü)
print("Giriş Vektörü'nün şekili(shape)")
print(GirişVektörü.shape)

78
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Vektörün Transpozesi .T : Kolon


Vektörü/Column Vector
1 kolondan oluşan kolon vektörü(column vector) 3 satır 1 sütun olarak 2
boyutlu dizi olarak tanımlanıyor. n x 1 kolon vektörü burada 3 x1

import numpy as np
GirişVektörü = np.array([2, 6, 22])
# Vektörün transpozesi: Kolon Vektörü/Column Vector
GirişVektörüT = np.array(GirişVektörü, ndmin=2).T
print("Giriş Vektörü")
print(GirişVektörü)
print("Griş Vektörünün Şekli")
print(GirişVektörü.shape)
print("Griş Vektörünün Transpozesi")
print(GirişVektörüT)
print("Griş Vektörünün Transpozesinin Şekli")
print(GirişVektörüT.shape)

Satır Vektörünün transposesi ( T) bir sürun vektörüdür( column vector)


Aılgortmada iki boyutlu bir dizi olan dütun vektörüne transpoze ettik.
Vectörler dik(vertically) veya yatay (horizontally) olarak yazılabilir. (Vector
Algebra)

79
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

İKİ VEKTÖRÜN SCALER ÇARPIMI: Scalar Product / Dot


Product
Matematikte skaler çarpım (the dot product) bir cebir operasyonudur. that
eşit büyüklükteki iki koordinat vektörünü alır ve sonuç olarak bir sayı verir. .
"scalar product"

iki vektör arasındaki açının kosinisü(the cosine of the angle between two
vectors) ile hesaplanır.

UYGULAMA:
import numpy as np
x = np.array([1,2,3])
y = np.array([6,9,10])
a=np.dot(x,y)
print(a)

80
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

İKİ VEKTÖRÜN VEKTÖREL ÇARPIMI :VECTOR


PRODUCT/ Cross Product
3 boyutlu uzayda iki vektörün çarpımında (The cross product or vector
product) sonuç çarpılan iki vektöre dik bir vektördür. (a vector which is
perpendicular to the vectors being multiplied and normal to the plane
containing them.)

Eğer vektörler paralel ise çarpımın sonucu sıfırdır.(If the vectors are parallel
then their cross product is zero.)

x = np.array([0,0,1])
y = np.array([0,1,0])
np.cross(x,y)
array([-1, 0, 0])
>>> np.cross(y,x)
array([1, 0, 0])

81
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: İKİ VEKTÖRÜN VEKTÖREL ÇARPIMI


import numpy as np
a=np.array([1, 2, 6])
b=np.array([2, 2, 6])
c=np.cross(a,b)
print(c)

Aralarındaki açı azdır. Sinüs karşı bölü hipotenüs


O yüzden vektörel çarpımlarının değeri çok büyük değildir.

HATIRLATMA: İKİ VEKTÖRÜN VEKTÖREL ÇARPIM


YÖNTEMİ
a=x1 i+ y1 j+ z1 k
b=x2 i + y2 j+ z2 k

a*b= (y1*z2-y2*z1) İ - (x1*z2-x2*z1) j +(x1*y2-x2*y2) k

82
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

I.4. NUMPY İLE MATRİSLER


Numpy(Numeric Python) Sayısal Piton ile Matris Programlama

Matrisler 3 boyutlu(veya daha fazla boyutlu) uzayda sistemlerin fiziksel


özelliğini yapısını tanımlar.
Örneğin Sonlu Elemanlar yöntemindeki(Finite Element Method) Ke
stiffnes matrisi bir cismin nokta nokta özelliklerini tanımlar o noktadaki
malzemesinin özellikleri E elastiklik modülü, poison ratio vb malzemenin fiziksel
özelliklleri ile.
F(kuvvet) = Ke * X (yer değiştirme)
Sonlu elemandaki bu Matris yöntemi makine uçak vb tasarımlarda
mukavemet hesabında, ısı hesaplarında ve uçakların tasarımın için gerekli olan
hesapların yapıldığı akışkanlar mekaniğinde(fluid mechanics) kullanılır.
Matrisler mhendislik ve bilim hesapları için en gerekli konulardan biridir.
3 boyutlu tasarım programlarında 3 boyutlu bir uzayda bir cismi taşımak
döndümek büyütmek küçültmek gibi işlemler(transformations) de matrislerle
yapılır. Matrislerle yapılan bu işlemler robot hareketlerini belirlemede de
kullanılır.
Sonlu Eleman Yönteminde matris kullanımına en basiti tek boyutlu bir
yay elemanı ile örnek vermek istersek:
Eleman Katılık Matrisi Yerdeğiştirmeler Kuvvetler
(Element Stiffness Matrix)

U : Noktasal yerdeğiştirmeler (Nodal displacements )


f : Noktasal kuvvetler ( Nodal forces)
Buradan tüm sistemi tanımlayan (Overall (Global)) Katılık Mattisi(Stiffnes
Matrix)’ ne gidilir ve bu matrisin çözümü ile bilinmeyenler bulunur.
Mukavemet/dayanım, akışkanlar mekaniği/aerodinamik, ısı vb tüm
mühendislik konlarının sayısal bilgisayar programlamaı ile hesabında Sonl
elemanla yöntemşi dolaysı ile matrisler kullanılmaktadır.

83
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Matris Tanımlama = np.matrix( ((1,2), (3, 4)) ) ve =


np.mat('[1 2;3 4]') ile ve np.array([[1, 2], [3, 4]]) ile

UYGULAMA: numpy.mat('[1 2 3;4 5 6;7 8 9]') ile Matrix


tanımlamak
import numpy as np
A= np.mat('[1 2 3;4 5 6;7 8 9]')
print(A)

UYGULAMA: numpy.matrix( ((1, 2, 3), (4, 5, 6), (7, 8, 9))


) ile Matrix tanımlamak
import numpy as np
A= np.matrix( ((1, 2, 3), (4, 5, 6), (7, 8, 9)) )
print(A)

84
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy. array ([[1, 2, 3], [4, 5, 6],[7, 8, 9] ])


veya numpy. array (((1, 2, 3), (4, 5, 6),(7, 8, 9) )) ile
Matrix tanımlamak : ikisi de aynı

import numpy as np
from numpy import linalg

A=np.array([[1, 2, 3], [4, 5, 6],[7, 8, 9] ])


print("A Matrisi")
print(A)
print("A.shape")
print(A.shape)
print("A Matrisinin Rank ı Derecesi")
print(np.linalg.matrix_rank(A))

import numpy as np
A=np.array (((1, 2, 3), (4, 5, 6),(7, 8, 9) ))
print(A)

ikisi de aynı
85
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

array( ) ile 2 şekilde Matrix tanımı : ikisi de aynı


np.array( ((2,3), (3, 6)) )
np.array([[2, 3], [3, 6]]) bunda köşeli parantezler var

86
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matrisin İndis ile elemanı A[i,j]


import numpy as np
A= np.matrix( ((1, 2, 3), (4, 5, 6), (7, 8, 9)) )
print(A)
L=A[1,2]
print(L)

Açıklama: indis 0 dan başladığı için A[1,2] 2nci satır 3ncü sütundaki eleman
demek

Örneğin aynı mariksde A[2,2] ile gösterilen eleman 3ncü satırın 3ncü elemanı
yani 9

UYGULAMA: indis ile eleman 2 boyutlu np.array ‘de de


aynı A[i,j]
import numpy as np
from numpy import linalg
A=np.array([[1, 2, 3], [4, 5, 6],[7, 8, 9] ])
print(A)
L=A[2,2]
print(L)

Açıklama: A[2,2] Python 0 ‘dan saymaya başladığı için 3ncü satır 3ncü sütundaki
eleman demek. Yani bu matrisde 9 sayısı.
A[2,1] deseydik 3ncü satır 2nci sütundaki eleman olacakdı . yani bu matrisde 8
sayısı.
87
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: 2 boyutlu array çarpımı 2 boyutlu matris


çarpımından farklı sonuç veriyor. Array’de Matris
çarpımında dot() kullanılıyor
import numpy as np
x = np.array( ((2,3), (3, 5)) )
y = np.array( ((1,2), (5, -1)) )
print(x * y)
x = np.matrix( ((2,3), (3, 5)) )
y = np.matrix( ((1,2), (5, -1)) )
print(x * y)

88
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: mat() ve matrix() ile Matris Tanımlama,


tüm elemanları eşit mi? np.all(A == B)
Numpy de iki matris tanımlama yöntemi var. mat() ve matrix()
import numpy as np
A= np.matrix( ((1,2), (3, 4)) )
B= np.mat('[1 2;3 4]')
print(np.all(A == B))

np.all(A == B) ile bu iki matrix eşit mi diye sordum.

İki yöntem ile aynı matrix üretiliyor

True

89
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA : A is B A matrisi B Matrisi mi?


import numpy as np
A= np.matrix( ((1,2), (3, 4)) )
B= np.mat('[1 2;3 4]')
print("A Matrisi")
print(A)
print("B Matrisi")
print(B)
print("A B mi?")
print(A is B)

False ,yani yanlış, çünkü içeriği aynı ama A başka bir matrix B başka bir
matrix.
“Bir cisimden kopyaladın ama orjinali başka bir cisim kopyası başka bir
cisim.” gibi
Tam mantık, tam yapay zeka.

90
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Logic Boolean hatırlatma


“Doğru doğru mu?” nun sonucu doğru mu? İkinci satırın anlamı

“and” “or” mantıksal (logical) operatörler

“not” mantıksal (logical) operatörü

“is” , “in” , and , or , not , True, False bunlar hep Yapay Zerka’nın
“Artificial Intelligence” ın yapı taşları.

91
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matrislerin Toplanması, Çıkartılması,


Çarpımı (Adding, Subtracting and Multiplying
Matrices)
import numpy as np

#Matrislerin oluşturulması
matris1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
matris2 = np.array([[7,8,9],[10,11,12],[13,14,15]])
print("1nci Matris")
print(matris1)
print("2nci Matris")
print(matris2)

#İki Matrisin Toplaması(Add the 2 Matrices)


print("1nci ve 2nci Matrislerin Toplamı")
print(np.add(matris1,matris2))

#Çıkartma(Subtraction) 2 den 1 i çıkartıyoruz. İlk yazılandan 2nci yazılanı


print("1nci Matristen 2nci Matrisin Çıkarılması")
print(np.subtract(matris2,matris1))

#Çarpım (Multiplication) (Element wise, not Dot Product)


print("1nci Matris ile 2nci Matrisin Çarpımı")
print(matris1*matris2)

92
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

93
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: İKİ MATRİSİN ÇARPIMI Her iki yöntemle


İki matrisi çarpabilmen için birincinin sütun sayısının
ikincinin satır sayısına eşit olması gerekir.
Küçük bir hatırlatma 

import numpy as np
# Matris çarpımı 1nci yöntem. Matris tanımı ile
a = np.matrix( ((2,3), (3, 5)) )
b = np.matrix( ((1,2), (5, -1)) )
print(a * b)

# Matris çarpımı 2nci yöntem. Array ve dot() fonksiyonu ile


a = np.array( ((2,3), (3, 5)) )
b = np.array( ((1,2), (5, -1)) )
print(np.dot(a,b))

Her iki yöntem ile de aynı sonucu buluyoruz. Sadece birinin türü dizi(array)
diğeri matris(matrix).

94
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
İki matrisin çarpımında 1ncinin sütun sayısı ikincinin satır sayısına
eşit olmalı. Atta birinci matris (3x4) sütun sayısı 4, ikincisi (4x1) satır
sayısı 4. 4= 4 Çarpıma uygun.

1nci matrisin birinci satırı alınıp ikinci matrisin(burada vektör) birinci sütunu
ile çarpılıyor. Ve sonuç matrisin ilk elemanı elde ediliyor.

95
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: İKİ MATRİSİN ÇARPIMI


import numpy as np
a = np.matrix( ((2,3), (3, 6)) )
b = np.matrix( ((1,2), (6, 3)) )
d=a * b
print(d)

Python Shell window dan


Print(a) değince sadece içeriğini,
a deyince martix ve içeriğini yazıyor.

Çarpımda birincinin ilk satırını alıyor


İkincinin ilk sütunu ile çarpıyor.. hatırlatma.

96
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: np.array() ile Tanımlanan Matrix lerin


Çarpımı np.dot(a,b) ile

import numpy as np
a = np.array( ((2,3), (3, 6)) )
b = np.array( ((1,2), (6, 3)) )
d=np.dot(a,b)
print(d)

UYGULAMA: np.array() ile Tanımlanan 2 Boyutlu


Dizi(array) Matrislerinin Çarpımı a.dot(b) ile
A ve b iki boyutlu dizi ise , numpy.dot(a, b) matris çarpımıdır(matrix
multiplication)

import numpy as np
a = np.array( ((2,3), (3, 6)) )
b = np.array( ((1,2), (6, 3)) )
d=a.dot(b)
print(d)

97
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: matrix() ile tanımlanmış 2 boyutlu İKİ


MATRİSİN ÇARPIMI
import numpy as np
a = np.matrix( ((1, 2, 6), (3, 6, 6), (2, 6, 3)) )
b = np.matrix( ((1, 3, 6), (6, 1, 2), (6, 3, 2)) )
d=a * b
print(d)

UYGULAMA: array() ile tanımlanmış 2 boyutlu İKİ


MATRİSİN a.dot(b) yöntemi ile ÇARPIMI
import numpy as np
a = np.array( ((1, 2, 6), (3, 6, 6), (2, 6, 3)) )
b = np.array( ((1, 3, 6), (6, 1, 2), (6, 3, 2)) )
d=a.dot(b)
print(d)

tamamdır ikisi de aynı

98
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matris Çarpımı numpy.dot(d,v))


import numpy as np
d = np.array([1, 6, 3, 4, 6, 3, 1, 2, 10])
v = np.array([1, 2, 3, 4, 8, 3, 1, 2, 10])
np.dot(d, v)

UYGULAMA: Matris Çarpımı numpy.dot(a,b)


import numpy as np
a = [[1, 0], [0, 1]]
b = [[4, 1], [2, 2]]
np.dot(a, b)

99
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: a*b b*a ya eşit değil


import numpy as np
a = np.matrix( ((2,3), (3, 6)) )
b = np.matrix( ((1,2), (6, 3)) )
d=a * b
e=b * a
print(d)
print(e)
np.all(d == e)

100
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matrisi Matrise Bölme (Matrix Division)


from numpy import array

matris1 = array([[1, 2, 3], [4, 5, 6], [7, 8, 9] ])


print(matris1)
matris2 = array([[1, 2, 3], [4, 5, 6], [7, 8, 9] ])
print(matris2)
matris3 = matris1 / matris2
print(matris3)

101
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Matris Çarpımı( Matrix Product)

İki matrisin çarpımı sol matrisin kolon sayısı ile ikinci matrisin satır(row)
sayısı eşitse yapılabilir.
İki dizinin(array) matris çarpımı (multiplication) için dot product kullanılır.

import numpy as np
x = np.array( ((2,3), (3, 5)) )
y = np.matrix( ((1,2), (5, -1)) )
np.dot(x,y)

matrix([[17, 1],
[28, 1]])

Alternatif olarak , matris nesnelerine çevirip "*" operatorü kullanabiliriz.


np.mat(x) * np.mat(y)

matrix([[17, 1],
[28, 1]])

102
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Bir Matrisin Tersi (Matrix inverse)


2x2 bir matrisde

|A| A Matrisinin Determinantı

3x3 boyutlu bir matrisde

Bir Matrisin o Matrisin Tersi ile çarpımı 1 dir.

Python numpy de bir matrisin tersini numpy.linalg.inv()

103
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATRİSİN TERSİ (MATRIX INVERSE)


numpy.linalg.inv(a)[source]

import numpy as np
from numpy.linalg import inv
a = np.array([[1., 2.], [3., 4.]])
print(a)
ainv = inv(a)
print(ainv)

bu programı blender içinden de çalıştırabiliriz.

104
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PYTHON IDLE DE SADECE DEĞİŞKENİ


YAZINCA ÇIKIŞTA YAZDIRMA OLMUYOR
PRİNT KULLANINCA OLUYOR. ÖNCEKİ ÖRNEĞİ PRINT İLE YAZINCA

import numpy as np
from numpy.linalg import inv
a = np.array([[1., 2.], [3., 4.]])
print(a)
ainv = inv(a)
print(ainv)

105
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATRİS TERSİ

import numpy as np
from numpy.linalg import inv
a = np.array([[[1., 2.], [3., 4.]], [[1, 3], [6, 6]]])
print(a)
print(inv(a))

Aynı programı Blender’da da çalıştırabiliriz:

106
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATRIS TRANSPOZESİ


import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
print(a)
atr= a.transpose()
print(atr)

Aynı programı Blender’da da çalıştırabiliriz:

107
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATRİS TRANSPOZE Sİ


import numpy as np
a = np.array([[1, 2], [3, 4]])
a
atr= a.transpose()
atr

Matris çarpımı VAR


a=np.matrix() b=np.matrix() a*b ile

108
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: iki matrix veya 2D array in in tüm


elemanları aynı mı? np.all(x1 == x3)
faydalı bir fonksiyon
dna dizisinde bile kullanılabilir.veya başka bir yerde..

import numpy as np
A=np.array([[1, 1, 1],
[3, 3, 3],
[5, 5, 5],
[7, 7, 7],
[9, 9, 9]])
B=np.array([[1, 1, 1],
[3, 3, 3],
[5, 5, 5],
[7, 7, 7],
[9, 9, 9]])
np.all(A == B)

Python Shell penceresinde np.all(A == B) yazınca True yazıyor.


Run penceresinden print(np.all(A == B)) ile yazınca da True sonucunu veriyor.

109
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: np.array_equal( , ) bu da 2nci yöntem “iki


matrix eşit mi” sorusu için
import numpy as np
A=np.array([[1, 1, 1],
[3, 3, 3],
[5, 5, 5],
[7, 7, 7],
[9, 9, 9]])
B=np.array([[1, 1, 1],
[3, 3, 3],
[5, 5, 5],
[7, 7, 7],
[9, 9, 9]])
np.all(A == B)
np.array_equal(A,B)

110
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Bir Matrisin Determinantı

A Matrisi olsun.

Bu A matrisinin Determinantı = 3x6-8x4=-14 dür.

Bu sefer Matrisimiz böyle 3x3 olsun.


Bu 3x3 matrisin determinantı aşağıdaki gibidir.

det(A)

Matrisin determinantı det(A), det A, veya | A | ile gösterilir.

111
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matrix in Determinant ı np.linalg.det(A)


import numpy as np
A=np.array (((1, 2, 3), (4, 5, 6),(7, 8, 1) ))
A=np.linalg.det(A)
print(A)

linalg yi import ile yüklemeden çalışdı

UYGULAMA: Matrix in Determinantı


import numpy as np
A=np.array (((1, 2, 3), (4, 5, 6),(7, 8, 9) ))
D=np.linalg.det(A)
print(A)
print(D)

112
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:Matrix in Determinantı
Düzenli ve nxn olan matrikslerin determinant ı sıfır mı. Deneyelim.

import numpy as np
A=np.array (((1, 2, 3, 4), (5, 6, 7, 8),(9, 10, 11, 12),(13, 14, 15, 16) ))
D=np.linalg.det(A)
print(A)
print(D)

EVET SIFIR. İLGİNÇ.. FİZİKİ BİR ANLAM ÇIKABİLİR HATTA KEŞİF

Belirlemem: 19-07-2018 N.Derya Varol


Determinat fiziki sistemin neyini belirliyorsa
determinant sıfır ise sistemde düzen var
determinantın tanımladığı fiziksel formül değer.

Doğrusal artımda bu var. 2 4 6 8 diye gitseydi yine sıfır mı olacakdı bu da


doğrusal artım.

A matrix with a determinant of zero

113
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Düzenli yani DOĞRUSAL ARTIMLI ve n x n


olan MATRİSDE DETERMİNANT SIFIR
DENEYELİM DEDİM DENEDİM SIFIR ÇIKDI

import numpy as np
A=np.array (((2, 4, 6, 8), (10, 12, 14, 16),(18, 20, 22, 24),(26, 28, 30, 32) ))
D=np.linalg.det(A)
print(A)
print(D)

114
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Determinantın Fiziksel anlamı


Her n×n matris bir doğrusal transformasyon ( linear transformation)
tanımlar.
Örneğin bu 2×2 matris

3/2 faktörü ile Dik olarak germe (stretching vertically)


2/3 faktörü ile Yatay olarak sıkıştırma (squeezing horizontally) ve
Saat yönünün tersinde 90 derece döndürme (rotating counterclockwise by 90°)
‘nin kompozisyonu olan bir doğrusal transformasyon( linear transformation)
tanımlar.
Determinantı 1’ dir. Gerilir, sıkıştırılır, döndürülür ama determinant 1
olduğu için sonuç şekil ilk şekil ile aynı toplam alana sahip olacaktır.

Determinant ‘ın 2 Boyuttaki Fiziksel Anlamı

İki boyutta bir nxm matrisin determinantı (a1,a2) ve (b1,b2)


vektörlerinin collinear olup olmadığının göstergesidir. Eğer determinant sıfırsa
iki vektör collinear dır.

saat yönünün tersinde 90 derece döndüren bir matrisdir.

115
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: = np.eye() Identity Matrix


import numpy as np
e= np.eye(6)
print(e) # An identity matrix

Hatırlatma: I Identity/Birim Matris ile bir Matris in


çarpımı yine aynı matrisdir
1 ile çarpım gibi

A.I=I.A=A

Identity: özdeşlik,birim

UYGULAMA: np.eye(6, k=1)


import numpy as np
e = np.eye(6, k=1)
print(e)

116
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: np.eye(6, k=-1)


import numpy as np
e = np.eye(6, k=-1)
print(e)

UYGULAMA: np.diag(np.array([1,2,3,4,5,6]))
import numpy as np
d = np.diag(np.array([1,2,3,4,5,6]))
print(d)

diag : diagonal 2-D array from a 1-D array specified by the user.

117
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: reshape()
import numpy as np
x = np.arange(36).reshape((6,6))
print(x)

UYGULAMA: np.diag(np.diag(x)) bir matris in diagonal


ı
import numpy as np
x = np.arange(36).reshape((6,6))
y=np.diag(np.diag(x))
print(y)

118
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matris’in Diagonalı(Köşegeni)


matris.diagonal()
Bir matrisin köşegenini yani diagonal elemanlarını göstermek için kullanılır.
(the Diagonal of a Matrix) (the diagonal elements of a matrix)

import numpy as np

matris = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12], [13,14,15,16]])


print(matris)
#Print the Principal diagonal
print(matris.diagonal())
#Print the diagonal one above the Principal diagonal
print(matris.diagonal(offset=1))
#Print the diagonal one below Principal diagonal
print(matris.diagonal(offset=-1))

119
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matris’in ……………. (Trace) i.


Diagonal(Köşegen) toplamı matris.trace()
Matrisin Köşegenindeki ( Principal Diagonal) elemanların toplamı

import numpy as np

matris = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12], [13,14,15,16]])


print(matris)
#Print the Principal diagonal
print(matris.diagonal())
#Print the Trace
print(matris.trace())

Diyagonaldeki elemanlar 1 6 11 ve 16 bunların toplamı da 34

1+6+11+16= 34

120
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: maksimim ve minimum değerlerin


bulunması
Numpy’nin max ve min fonksiyonları

import numpy as np

matris = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12], [13,14,15,16]])


print(matris)

#En büyük değerdeki( max) eleman


print(np.max(matris))
#En küçük değerdeki ( min) element
print(np.min(matris))

#Herbir sütundaki en büyük değerdeki(max) elemanlar


print(np.max(matris,axis=0))
#Herbir satırdaki en büyük değerdeki(max) elemanlar
print(np.max(matris,axis=1))

121
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Ortalama Derğer(Average), Variance and


Standard Sapma(deviation)
Dizinin istatistikile ilkgili bazı değerlerini bulmak

import numpy as np

matris = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12], [13,14,15,16]])


print(matris)

#Ortalama Değer(Mean)(Aerage)
print(np.mean(matris))
#Standard Sapma (Deviation)
print(np.std(matris))
#Variance
print(np.var(matris))

Deviation:sapma
Mean: ortalama
Average: ortalama
Variance :değişim,sapma
Variance

122
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:Dizileri Yeniden Şekillendirmek


(Reshaping Arrays)
Elemanları değiştirmeden Satır ve Sütun sayılarını değiştirmek

import numpy as np

matris = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12], [13,14,15,16]])


print(matris)
#Yeniden Şekillendirme
print(matris.reshape(16,1))
print(matris.reshape(1,-1))
#Sadece tek değer belirtilirse 1 boyutlu dizi üretilir.
print(matris.reshape(16))
# Flatten metodu da matrisi 1 boyutlu diziye dönüştürür.
print(matris.flatten())

123
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matrisin Determinantı ve Matrisin


Derecesi (Rank)
Rank için tercümede Boyut uygun veya Derece.
2 boyutlu dizi dediğimiz. Veya 2 boyutlu matris dediğimiz. Rank 2.

import numpy as np

matris = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12], [13,14,15,16]])


print(matris)
#Calculate the Determinant
print(np.linalg.det(matris))
#Calculate the Rank
print(np.linalg.matrix_rank(matris))

124
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Eigenvalues ve Eigenvectors leri bulmak


Eigenvectors Makine Öğrenmesi Kütüphanelerinde ( Machine Learning
libraries) kullanılır. Bir matris ile temsil edilen bir doğrusal transformasyonda
(linear transformation) eigenvectors bu transformasyon uygulandığında
sadece büyüklük oranını( scale) değiştiren yönü (direction).değiştirmeyen
vektörlerdir.
Av=Kv
A kare matrisdir(square matrix),
K eigenvalues ‘u içerir
v eigenvectors ‘ü içerir.

import numpy as np

matris = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12], [13,14,15,16]])


print(matris)

# Matrisin Eigenvalues ve Eigenvectors lerini hesaplar.


eigenvalues ,eigenvectors=np.linalg.eig(matris)
print(eigenvalues)
print(eigenvectors)

125
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Dot Products ı Hesaplamak


import numpy as np

#vector1 in oluşturulması
vector1 = np.array([ 1,2,3 ])
# vector2 nin oluşturulması
vector2 = np.array([ 4,5,6 ])
# Dot Product ‘ın Hesaplanması
print(np.dot(vector1,vector2))
#Alternatively Dot Product ‘ın Hesaplanması için @ da kullanılabilir.
print(vector1 @ vector2)

Matris-Matris Çarpımı( Multiplication) (Dot Product)

126
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

I.5. Numpy ve TENSÖRLER(Tensors)


Tensör Nedir
Skaler Vektör Matris Tensör

Tensör N-boyutlu bir vektördür, Tensör N-boyutlu verisetlerini (


datasets) temsil etmek (represent) için kullanılabilir.

3D Tensör veya daha büyük boyutta tensör

3 veya 3’ten fazla boyutlu matrise tensör diyoruz. N ≥ 3 boyut

Tensör= Cokboyutlu Dizi (Multidimensional Array)

Vektör Matris Tensör

127
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

2 boyutlu Derece(Rank)=2 Satır, Sütun ( Row, Column) örnek: 3x6

3 boyutlu Derece(Rank)=3 Satır,Sütun,…….. (Row, Column,Tube) örnek:3x6x2

3NCÜ DERECEDEN TENSÖR (3rd Order Tensor)

128
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Örneğin Einstein’ın Genel Görecelik teorisindeki Rieman Eğrilik Tensörü(


Rieman curvature Tensor) 4 indisli bir tensördür (a four-index tensor) yani
derecesi/ rank=4 dür.

4ncü dereceden Tensör (A tensor of rank 4)

129
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

3ncü dereceden Tensör (A tensor of rank 3)

3 indisli tensör (a tensor with 3 indices)

Bu 3 indisle etiketlenmiş düzenli bir sayı setidir.


3 boyutta bir super matris olarak görselleştirilebilir

130
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Fotoğraf 3 boyutlu bir Tensördür


3D (3 boyutlu) Tensör= Zaman Serileri(Time series) ,
RGB Renkli Görüntüler (RGB color images)
4D (4 boyutlu)Tensör= Görüntüler(Images) (jpeg)
5D( 5 boyutlu) Tensör= Videolar(Videos)

RGB Görüntüleri çoğunlukla 3 boyutlu dizilerdir. (3


dimensional arrays).
Dizinin şekli(shape) Yükseklik(height) x Genişlik(width) x 3 dür.
200 piksel genişliğinde 100 piksel yüksekliğinde bir görüntüyü
tanımlayan bir Dizi (an array to represent a 200 pixel wide by 100 pixel
high image)
RGBA (Red Green Blue Alpha)
RGBA renk değerleri RGB ‘nin uzantısıdır. A değeri (alpha channel)
şeffaflık(opacity) ekkenmiştir.

Alfa değişkeni 0.0 tam saydamdan (fully transparent) ‘dan 1.0 ‘e hiç
saydam olmayan alttaki tabakayı hiç göstermeyen değere kadar değişir.
Yükseklik(height) x Genişlik(width) x 4
OpenCV ‘deki örnekte Görüntü Tensörü’nün şekli(shape)
( a, b, 3) idi
a: tensörün satır sayısı, yani resmin pixel olarak yüksekliğidir.
b: tensörün sütun sayısı, yani resmin pixel olarak genişliğidir.
3 R G B renkleridir.
Burada ise Görüntü Tensörü’nün şekli(shape)
(a, b, 4)
4 R G B renkleri ve Alpha denen şeffaflık değeri .Burada fazladan
Alpha var.

Bu bölümdeki 4üncü ve 5nci uygulamalarda örneklerini gösterdik.

131
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Genel Görecelikte Tensör


Riemann tensörü , Riemann-Christoffel curvature tensörü ya
da Riemann curvature tensor Genel Görecelik’te (Genaral Relativity)
4 indisli (four-index tensor) önemli bir tensördür.
yani derecesi/ rank=4 A tensor of rank 4

4 -tensor genellikle tensor indis notasyonunda yazılır.

Genel Görecelikteki diğer önemli tensörlerden biri. Ricci


curvature tensorü’ dür.
Einstein’ın alan eşitlikleri (The Einstein field equations)

iki tensörün Farkı 1 tensöre eşit

132
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Makine Öğrenmesinde (Machine Learning) Tensör


Makina öğrenmesinde Veri(Data) tensör yani çok boyutlu dizi olarak
işlenir, karşılaştırma sınıflandırma yapılır.
Örneğin Python modüllerinden Tensorflow ve PyTorch Makine
öğrenmesindeki Tensör işlemlerinin gerçekleştirilmesi içindir.

133
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Numpy ve TENSÖRLER (Tensors)


NumPy büyük çok boyutlu diziler ve matrisler (large
multidimensional arrays and matrices ) için matematik fonksiyonlar
koleksiyonu olan bir Python modülüdür.
0 Boyutlu dizi bir sayıdır
1 Boyutlu dizi vektördür
2 boyutlu dizi ise Matrisdir.
3 boyutlu dizi Tensördür.
4 ve üzeri boyuttaki diziler de Tensördür..
Yüksek boyutlu bir yapıyı görselleştirmek zordur.
Bir tensör çoğunlukla genelleştirilmiş bir matris olarak düşünülür.
Matris için 2nci dereceden tensör (rank-2 tensor) (second-order
tensor) diyebiliriz.
Tensörün boyutu(dimension) derece(rank) olarak adlandırılır.
Tensör bir yapının(structure) içindeki matematiksel bir özelliktir. Ve
diğer matematiksel özelliklerle etkileşim halindedir.

Tensörler fizikte ve fiziksel matematik önemli bir konudur. Çünkü


mekanik(gerilim,elastisite, akışkanlar mekaniği) , elektrodinamik
(elektromanyetik tensör, Maxwell tensör), Genel Görecelik (eğrisellik
(curvature) tensörü, gerilim enerji tensörü) gibi alanlardaki fiziksel
problemleri denklem haline getirmekte ve çözmekte önemli bir yer tutar.
Tensor alanları(fields) kısaca tensör olarak adlandırılır.

134
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Bir tensör çok boyytlu bir dizi ile temsil edikebilir.. Bir vektör ise tek
boyutlu bir dizi ile temsil edilebilir.

Tensörün sembolik adı ve dizideki pozisyonu veren indisler.


altharf(subscripts) ve üstharf(superscripts) ile gösterilir.
İ ve j 1 den n ‘e kadar devam eden indislerdir.
Makinalar veri(data) olmadan öğrernemez. Veri de çoğunlukla çok
boyutludur. Bunu fotoğraf örneğinde göreceğiz.
Tensörler Makine Öğrenmesi’nde çok boyutlu verilerin kodlan-
malarında önemli rol oynar.

135
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Örneğin bir resim 3 alan işle temsil edilir. Bunlar genişlik(width),


yükseklik(height) ve derinlikdir(rgb renkleri) (depth (color)).
Bir resim bir fotoğraf 3 boyutlu bir tensor olarak kodlanır.
Bir fotoğraf, RGB görüntüleri(images) 3 boyutlu dizi(array) ,
yani 3 boyutlu tensor olarak depolanır.
(3 dimensional arrays of 8-bit unsigned integers)
Dizinin Şekli(Shape)
Yükseklik(height) x Genişilk(width) x 3.
Örneğin, 200 pixel genişliğinde 100 pixel yüksekliğinde bir görüntü 3
boyutlu bir dizi ile temsil edilir.
Genişlik(width) = 200
Yükseklik(height )= 100
Dizi(array) = np.zeros([Genişlik, Yükseklik, 3], dtype=np.uint8)
Bununla birlikte binlerce fotoğratan oluşan fotoğraf setleri de
konumuz olabilir. Bu durumda 4 boyutlu tensör karşımıza çıkar.
Makine Öğrrnnesi algoritmalarının çoğu vektörlere ve mattislere
dayanır. Derin Öğrenme(deep learning) ve neural networkslerin çoğu
tensörlere dayanır.

Python’da tensörler. vektörler ve mattisler gbi N-boyutlu dizi (N-


dimensional array (ndarray)) ile temsil edilir.
Tensörler. mattisler ve vektörler gibi lineer cebirde(linear algebra)
veri yapısı türüdür. Tensörler ile aritmetik operasyon hesaplamaları
yapabilirsiniz.

136
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: 3 Boyutlu (3D) Tensor Oluşturmak

import numpy as np
x = np.array([[[1, 4, 7],
[2, 5, 8],
[3, 6, 9]],
[[10, 40, 70],
[20, 50, 80],
[30, 60, 90]],
[[100, 400, 700],
[200, 500, 800],
[300, 600, 900]]])
print(x)
print('Bu Tensörün derecesi( rank): %d' %(x.ndim))

Rank=3 olan, yani derecesi 3 olan matriste matrisin derinliği var,


3ncü boyutu var. Bu matrise tensör deniyor. 3D Tensor (3
Dimensional) yani Türkçesi ile 3 boyutlu tensör.

Tensör boyutları N ≥ 3 yani 3 ve 3 den fazla olan Dizidir.

137
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Numpy dizisi ile 3x3x3 Tensör Tanımlama


NumPy ndarray i ile 3x3x3 Tensor tanımlama

import numpy as np
T = np.array([
T = array([
[[1,2,3], [4,5,6], [7,8,9]],
[[11,12,13], [14,15,16], [17,18,19]],
[[21,22,23], [24,25,26], [27,28,29]],
])
print(T)
print("Tensörün Şekli(Shape)")
print(T.shape)

138
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pratikten Tensör Örneği Fotoğraf 3


Boyutlu bir tensördür Pixel Arrays np.asarray(gör)
Burada pratik örnek için Pillow Python image library modülünü de
kullanacağız. Pillow ile ilgili detay bilgi daha sonra Pilow kitapçığında
yayınlanacak.

from PIL import Image


import numpy as np
import matplotlib.pyplot as plt

#gör Görüntü
gör = Image.open('D:/Bilim/deneme.png')
#gördiz Görüntü Dizisi
gördiz = np.asarray(gör)

print("shape")
print(gördiz.shape)
print("np.ndim(A) Görüntü Dizisinin Tensörünün Derecesi(Rank'ı)")
print(np.ndim(gördiz))
print(gördiz)
plt.imshow(gördiz)
plt.show()

139
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
3 Boyutlu Veri Dizisi( 3-dimensional array of the data) bir görüntüyü
image) tanımlıyor. İlk iki boyut resimdeki bir pikselin yeri koordinatını belirler.
3ncü boyut derinlik ise o noktanın o pikselin RGB-A renk ve saydamlık
değerleridir. (the pixel values in RGB-A (Red Green Blue Alpha)).
OpenCV deki örnekte Görüntü tensörü nün şekli(shape)
(a, b, 3) idi
3 R G B renklerinin sayısı
a : satır sayısı, yani rrsmin pixel yüksekliği
b : sütun sayısı, yani rrsmin pixel genişşiği

Burada ise Görüntü Tensörü’nün şekli(shape)


(a, b , 4)
4 R G B renkleri ve Alpha denen parlaklık değeri. Burada fazladan
Alpha var.
RGBA renk değerleri RGB renk değelerinin rengin matlığını
şeffaflığını belirleyen alpha kanalının ekkenmiş bir uzantısıdır.

plt.imshow(gördiz) ile görüntü dizisini tensörünü görüntülüyoruz.

140
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Görüntünün 3 Boyutlu Tensör olduğunun


OpenCV ve Numpy ile örneği print(cv2.imread('...jpg')
import numpy as np
import cv2

gör = cv2.imread('D:/Bilim/opencvface.jpg')
print("shape")
print(gör.shape)
print("np.ndim(A) Görüntü Dizisinin Tensörünün Derecesi(Rank'ı)")
print(np.ndim(gör))

print(gör)

cv2.imshow('Goruntu',gör)

3 Boyutlu (rank=3) Gör Dizisi/Tensörü.. Direkt print ile yazdırdık.

141
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

142
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Tensör Toplama (addition)

# tensor toplama
import numpy as np
A = np.array([
[[1,2,3], [4,5,6], [7,8,9]],
[[11,12,13], [14,15,16], [17,18,19]],
[[21,22,23], [24,25,26], [27,28,29]],
])
B = np.array([
[[1,2,3], [4,5,6], [7,8,9]],
[[11,12,13], [14,15,16], [17,18,19]],
[[21,22,23], [24,25,26], [27,28,29]],
])
C=A+B
print(C)

143
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Tensör Çıkarma(subtraction)

# tensor çıkarma
import numpy as np
A = np.array([
[[1,2,3], [4,5,6], [7,8,9]],
[[11,12,13], [14,15,16], [17,18,19]],
[[21,22,23], [24,25,26], [27,28,29]],
])
B = np.array([
[[1,2,3], [4,5,6], [7,8,9]],
[[11,12,13], [14,15,16], [17,18,19]],
[[21,22,23], [24,25,26], [27,28,29]],
])
C=A-B
print(C)

144
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: İki Tensörün Çarpımı (Tensor product )


numpy.tensordot()

# tensor product
from numpy import array
from numpy import tensordot

A = array([1,2])
B = array([3,4])
C = tensordot(A, B, axes=0)
print(C)

145
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: İki Tensörün Çarpımı (Tensor product )


numpy.tensordot()

import numpy as np
a = np.arange(60.).reshape(3,4,5)
b = np.arange(24.).reshape(4,3,2)
c = np.tensordot(a,b, axes=([1,0],[0,1]))
print(c.shape)
print(c)

# Aynı sonucu başka bir yöntemle buluyoruz.


d = np.zeros((5,2))
for i in range(5):
for j in range(2):
for k in range(3):
for n in range(4):
d[i,j] += a[k,n,i] * b[n,k,j]

print(c == d)

146
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Tensör Çarpımı (tensor dot product)


np.tensordot(A,B)

Hatırlatma: np.dot(A,B) matris çarpımıdır. (matrix multiplication)


import numpy as np
# Bu ikinci import linalg.matrix_rank(A) ın ikinci yükleme şeklini
göstermek için
# import numpy.linalg as npl

A = np.arange(60.).reshape(3,4,5)
print("A Tensörü")
print(A)
print("A.shape")
print(A.shape)
print("A Tensörünün Rank ı Derecesi")

# Her iki usulde de A Tensörünün Rank ının Derecesinin Belirlenmesi

print(np.linalg.matrix_rank(A))
print(npl.matrix_rank(A))

B = np.arange(24.).reshape(4,3,2)
print("B Tensörü")
print(B)
print("B.shape")
print(B.shape)
print("B Tensörünün Rank ı Derecesi")

# B Tensörünün Rank ının Derecesinin Belirlenmesi


print(np.linalg.matrix_rank(B))

C = np.tensordot(A,B, axes=([1,0],[0,1]))

147
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
print("C Tensörü")
print(C)
print("C.shape")
print(C.shape)
print("C Tensörünün Rank ı Derecesi")

# C Tensörünün Rank ının Derecesinin Belirlenmesi

print(np.linalg.matrix_rank(C))

148
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

149
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: İki Tensörün Skaler Çarpımı: Tensor


Hadamard Product C = A * B
Bu klasik matrix (tensör)çarpımından yani dot product ‘tan farklı.
tensor multiplication dan farklı. İki matisin veya tensörün toplamı gibi. Her
eleman bulunduğu yerdeki eleman ile çarpılıyor.

( each is the -wise of the scalars in the.


“o” operatorü Hadamard product işlemini gösterir.

# Tensör Hadamard product


import numpy as np
A = np.array([
[[1,2,3], [4,5,6], [7,8,9]],
[[11,12,13], [14,15,16], [17,18,19]],
[[21,22,23], [24,25,26], [27,28,29]],
])
print("A Tensörü")
print(A)
print("np.ndim(A) A Tensörünün Derecesi(Rank'ı)")
print(np.ndim(A))
print("A.shape")
print(A.shape)

B = np.array([
[[1,2,3], [4,5,6], [7,8,9]],
[[11,12,13], [14,15,16], [17,18,19]],
[[21,22,23], [24,25,26], [27,28,29]],
])
print("B Tensörü")
print(B)
print("np.ndim(B) B Tensörünün Derecesi(Rank'ı)")
print(np.ndim(B))
print("B.shape")
print(B.shape)

150
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
C=A*B
print("C Tensörü")
print(C)
print("np.ndim(C) C Tensörünün Derecesi(Rank'ı)")
print(np.ndim(C))
print("C.shape")
print(C.shape)

151
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.linalg.tensorsolve(a, b)
Tensor denkleminin çözümü a x = b

import numpy as np

A = np.eye(2*3*4)
print(A)
print("A.shape")
print(A.shape)
print("np.ndim(A) A Tensörünün Derecesi(Rank'ı)")
print(np.ndim(A))
A.shape = (2*3, 4, 2, 3, 4)
print(A)
print("A.shape")
print(A.shape)
print("np.ndim(A) A Tensörünün Derecesi(Rank'ı)")
print(np.ndim(A))

B = np.random.randn(2*3, 4)
print(B)
print("B.shape")
print(B.shape)
print("np.ndim(B) B Tensörünün Derecesi(Rank'ı)")
print(np.ndim(B))

x = np.linalg.tensorsolve(A, B)
print("x Tensörü")
print(x)
print("x.shape")
print(x.shape)
print("np.ndim(x) x Tensörünün Derecesi(Rank'ı)")
print(np.ndim(x))
print(np.allclose(np.tensordot(A, x, axes=3), B))

152
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

153
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
Bu birimden alt alta
48 adet var

154
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.linalg.tensorinv(A, ind=2)


N boyutlu dizinin(N-dimensional array) tersi (inverse)

import numpy as np
A = np.eye(4*6)
print("A Tensörü")
print(A)
print(A.shape)

# A.shape (24, 24) iken değiştiriyoruz (4, 6, 8, 3) yapıyoruz altta


A.shape = (4, 6, 8, 3)
print(A)

Ainv = np.linalg.tensorinv(A, ind=2)


print("Ainv (A Tensörünün Invers ‘ü) Tensörü")
print(Ainv)
print(Ainv.shape)
inversünün shape i de (8, 3, 4, 6)

155
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

A nın shape ini (4, 6, 8, 3) yaptıktan sonra

156
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Böyle 24 birim var alt


alta

157
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Çözüldü: numpy.rank() eski versiyonlarda kullanılıyormuş yenilerde


yerine Numpy.ndim() geçmiş.
module 'numpy' has no attribute 'rank' diyor çalışmıyordu.

Numpy.ndim() (eski numpy.rank() Dizinin boyutu ( the number of


dimensions of an array)

158
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: .mat Matlab Data sını Numpy ve Scipy ile


okumak
Dicrionary olarak okuyor.
import scipy.io
import numpy as np

T = scipy.io.loadmat('D:/Bilim/brod.mat')
print(T)
print("type(T)")
print(type(T))

#Dict i Array e dönüştürmek


data = list(T.items())
Dizi = np.array(data)

print(Dizi)
print("np.ndim(Dizi )Dizi Tensörünün Derecesi(Rank'ı)")
print(np.ndim(Dizi))
print("Dizi .shape")
print(Dizi.shape)

159
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

160
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Numpy’de Dict i Tensor ‘e çevirmek lazım


you must specify 'dtype=object' when creating the ndarray dedi ama yine
de dönüştürdü

161
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

162
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Sözlükler(Dictionaries)
NumPy dizileri ( arrays) vektörleri, matrisleri ve tensörleri temsil eden
sayısal değerleri dfepolamak için kullanılır ve büyük veri setlerini(data set)
depolayabilirler.
Sözlükler(Dictionaries) listeler(lists) gibidir. Fakat elemanlarına
listelerdekinden farklı yöntemlerle ulaşılır. Listedeki veya dizideki bir
elemana onun sıradaki yerini göstren sayı ile ulasşılır.
Sözlüklerin(dictionaries) elemanlarına ise anahtarlarla ( “keys”) ulaşılır.
Anahtarlar (strings) veya tamsayılardır ((arbitrary) integers).

163
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Python Dictionary yapısı


Düzensiz (Unordered) items. Her item KEY/VALUE çiftine sahiptir.

dict = {'Ad': 'Selin', 'Yas': 27, 'Sınıf': 'İkinci'}


print ("dict['Ad']: ", dict['Ad'])
print ("dict['Yas']: ", dict['Yas'])
print ("dict['Sınıf']: ", dict['Sınıf'])
print(dict)

UYGULAMA: Dictionary list(Dict.keys())


from scipy.io import loadmat
Dict=loadmat('D:/Bilim/brod.mat')
print(list(Dict.keys()))

loadmat bir dictionary verir. 'x'. anahtarlı(key) bir dizi.


print(list(data.keys())) keys/variable adlarını görmek için kullanılır.
print(_['x'] ) bu yazmadı içinden bu X key i ile bu diziyi alacağız
ve yazdıracağız.

164
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:HELAL ÇÖZÜP Dictionary’den DİZİYİ


ALDIK Dict=loadmat('D:/../....mat') T=Dict['X']
from scipy.io import loadmat
import numpy as np

Dict=loadmat('D:/Bilim/brod.mat')
print(list(Dict.keys()))
# Dict Dictionary sinin içinden X dizisini aldık.
T=Dict['X']
print("Dictionary içinden aldığımız 2 Boyutlu Dizi")
print(T)
print("type(T)")
print(type(T))
print("np.ndim(T) Tensörünün Derecesi(Rank'ı)")
print(np.ndim(T))
print("T.shape")
print(T.shape)

165
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Bu sonradan tensor işlemleri yapmak için de kullanılıyor. Matlab veri


dosyası .mat ile gelen Data’yı alıp Tensor olarak işlemek için. Makina
Öğrenmesi’nde de geçerli. Sonradan Tensorflow a da aktarılır bu veri.

166
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

I.6. LİNEER CEBİR(LINEAR ALGEBRA)


numpy.linalg
Matris ve Vectör Ürünleri(products)
dot(a, b[, out]) İki dizinin çarpımı (Dot product)

Eşitliklerin Çözümü(Solving equations) ve Matrislerin Tersinin


alınması(inverting matrices)
linalg.solve(a, b) Lineer Matris Eşitliğini Çözer ( linear matrix equation, or
system of linear scalar equations)

linalg.tensorsolve(a, b[, axes]) Tensör Eşitliğini Çözer a x = b for x.

UYGULAMA: numpy.linalg ile Matris Tanımlama


import numpy as np
from numpy import linalg

import numpy as np
A = np.array([[[1, 4, 7],
[2, 5, 8],
[3, 6, 9]],
[[10, 40, 70],
[20, 50, 80],
[30, 60, 90]],
[[100, 400, 700],
[200, 500, 800],
[300, 600, 900]]])
print("A Matrisi")
print(A)
print('This tensor is of rank %d' %(A.ndim))
print("A.ndim")
print(A.ndim)
print("A.shape")
print(A.shape)

167
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol
print("A Matrisinin Rank ı Derecesi")
print(np.linalg.matrix_rank(A))

burada da rank ı 3 yazmadı


[2 2 2] yazdı ?
rank 3 ü A.ndim ile yazdı ***

numpy.ndarray.ndim() fonksiyonu dizinin boyut değerini verir.

Boyut= np.ndim(A)

168
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.linalg matrix multiplication dot( )


Matrisi çarpımını eleman eleman yapmak yerine matrix multiplication
dot() kullanılır.

import numpy as np
from numpy import linalg
a = np.array([[-1.0, 2.0, 2.0], [2.0, 2.0, -1.0], [2.0, -1.0, 2.0]])
b = np.array([1.0, 2.0, 3.0])
mc1= np.dot(a,a)
mc2= np.dot(b, a)
print("a matrisi:")
print(a)
print("b matrisi:")
print(b)
print(" a * a =")
print(np.dot(a,a))
print("b*a=")
print(np.dot(b, a))

169
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matrix Inverse linalg.inv(a)


import numpy as np
from numpy import linalg

a = np.array([[-1.0, 2.0, 2.0], [2.0, 2.0, -1.0], [2.0, -1.0, 2.0]])


inv=linalg.inv(a)
print(inv)

UYGULAMA : Matrix in Determinant ı linalg.det( )


import numpy as np
from numpy import linalg

a = np.array([[-1.0, 2.0, 2.0], [2.0, 2.0, -1.0], [2.0, -1.0, 2.0]])


D= linalg.det(a)
print(D)

170
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Denklem Takımlarının Çözümü(Solving linear system)


Lineer Denklemlerin çözümü scipy komutu linalg.solve iledir. Bu komut
bir giriş matrisi (input matrix) ve bir sağ el tarafı vektörü (right-hand-side
vector) giriş olarak alır ve çözüm vektörü (solution vector) hesaplanır.

Finite element çözümünde kullanılabilir.

Yukarıda çözüm vektörü matris inverse ‘i ile bulundu. Ama However, it is


linalg.solve konutunu daha hızlıdır. Her ikisi de aynı sonucu verir.

171
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA : numpy.linalg.solve
Aşağıdaki denklem sistemini çözelim.

3 * x + y = 9 ve
x+2*y=8

import numpy as np
from numpy import linalg
a = np.array([[3,1], [1,2]])
b = np.array([9,8])
xy = np.linalg.solve(a, b)
print(xy)

array([ 2., 3.])

Çözümün doğruuğunu kontrol edelim:

np.allclose(np.dot(a, xy), b) python Shell penceresinden yazınca True


diyor
run penceresinden yazınca True yazmıyor.

172
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: numpy.linalg.solve
Matriks i numpy.array le değil numpy.matrix ile tanımladım

x + 3*y+ 5*z =10


2*x + 5*y+ z =8
2*x + 3*y+ 8*z =3

import numpy as np
from numpy import linalg
a= np.matrix( ((1,3,5), (2,5,1), (2,3,8)) )
b = np.array([10, 8, 3])
c = np.linalg.solve(a,b)
print(c)

UYGULAMA: from numpy import linalg yükleme


satırını yazmadan da çalışdı
import numpy as np
a= np.matrix( ((1,3,5), (2,5,1), (2,3,8)) )
b = np.array([10, 8, 3])
c = np.linalg.solve(a,b)
print(c)

İlerki kısımlarda Scipy.linalg kısmındaki array ile tanımlayıp çözen


np.linalg.solve(A, b) ile aynı değerleri buluyor. Ama bu satır matrix
oradaki sütun matrix.

**************************************
173
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

II. SCIPY(SCIENTIFIC
PYTHON) BİLİMSEL PİTON
Scipy temel Fonksiyonlar:
Lineer Cebir(Linear Algebra) scipy.linalg
Özel fonksiyonlar scipy.special
İntegral scipy.integrate
Optimizasyon scipy.optimize
Interpolasyon (scipy.interpolate)
Fourier Dönüşümleri (Transforms) (scipy.fftpack)
Sinyal İşleme (scipy.signal)
Aralıklı(Sparse) Eigenvalue Problemleri ARPACK
Sıkıştırılmış Aralıklı Grafik Programları (scipy.sparse.csgraph)
Uzaysal(Spatial) veri yapıları ve algoritmaları (scipy.spatial)
İstatistik (scipy.stats)
Çok boyutlu görüntü işleme (image processing) (scipy.ndimage)
Dosya IO (scipy.io)

import scipy as sp

SciPy Numpy üzerine inşaat edilmiştir. Bilimsel ve mühendislik


uygulamaları için birçok faydalı fonksiyon içerir

174
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Modüller
scipy.constants Matematiksel ve Fiziksel sabitler(constants)
scipy.special Matematiksel Fizik için Özel Fonksiyonlar. airy, elliptic,
bessel, gamma, beta, hypergeometric, parabolic cylinder, mathieu, spheroidal
wave, struve, and kelvin fonksiyonları
scipy.integrate sayısal iltegrasyon: trapezoidal, Simpson's, Romberg, ve diğer
metodlar. sıradan differansiyel denklemlerin integrasyonu.
scipy.optimize
scipy.linalg linear cebir algoritmaları
Methodlar: inverse, determinant, doğrusal denklem takımlarının
çözümü. eigenvalue/eigenvector decomposition, singular value
decomposition, LU decomposition, Cholesky decomposition, QR
decomposition, Schur decomposition

scipy.sparse büyük, sparse matrisler için.


scipy.interpolate 1 veya 2 boyutlu veri setleri için doğrusal ve spline
interpolasyon
scipy.fftpack Fourier transform routines and processing.
scipy.signal simnyal işleme rutinleri( routines), convolution, correlation, finite
fourier transforms, B-spline smoothing, filtering, vb.
scipy.stats istatiksel fonksiyonlar ile ilgili geniş bir kütüphane.
Data setleri üzerinde operasyonlar

175
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

II.1. Scipy LINEAR ALGEBRA scipy.linalg


scipy.linalg tüm numpy.linalg fonksiyonlarını içerir. Artı
numpy.linalg da olmayan bazı ileri fonksiyonları da kapsar.

Uygulama: inverse linalg.inv( )


import numpy as np
from scipy import linalg
A = np.array([[1,2],[3,4]])
print(A)
B= linalg.inv(A)
print(B)

Bu A.I ya eşit ikisi de Matrix transpoze si

176
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA Matrix Transpoze si .T


import numpy as np
from scipy import linalg
b = np.array([[5,6]]) #2D array
print(b)
print(b.T)

177
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA :Array ile tanımlanan Matrix lerin Çarpımı dot ile


If both a and b are 2-D arrays, it is matrix multiplication
numpy.dot(a, b)

import numpy as np
from scipy import linalg
A = np.array([[1,2],[3,4]])
b = np.array([[5,6]]) #2D array
print(A)
print(b)
print(" A*b #not matrix multiplication!")
print(A*b) #not matrix multiplication!
print(" A.dot(b.T) #matrix multiplication")
print(A.dot(b.T)) #matrix multiplication

178
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Denklem takımlarının Çözümü iki ayrı yöntemle


çözüm. aynı sonuç

import numpy as np
from scipy import linalg
A = np.array([[1,3,5],[2,5,1],[2,3,8]])
print(A)
b = np.array([[10], [8], [3]])
print(b)
print("linalg.inv(A).dot(b) Matrix Inverse ile Denklem takımı Çözümü")
print(linalg.inv(A).dot(b)) # slow
print("np.linalg.solve(A, b) ile Denklem takımı Çözümü")
print(np.linalg.solve(A, b)) # fast

179
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Denklem takımlarının Çözümü


import numpy as np
from scipy import linalg
A = np.array([[1, 2], [3, 4]])
print(A)
b = np.array([[5], [6]])
print(b)
print("linalg.inv(A).dot(b) ile Denklem takımı Çözümü")
print(linalg.inv(A).dot(b)) # slow
print("np.linalg.solve(A, b) ile Denklem takımı Çözümü")
print(np.linalg.solve(A, b)) # fast

180
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Shell penceresinde önceden tanımlanmış vektörün adını


yazıp nokta koyunca hemen bir liste çıkıyor. bununla
kullanılabilecek komutların listesi

diye devam eden bir komut listesi

181
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama
import numpy as np
A = np.mat('[1 2;3 4]')

Uygulama A.I Inverse ve A.T Transpoze

182
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

II.2. Matrisi Çarpanlarına Ayırma( Matrix


Factorization/Lower Upper Factorization/ LU Matrix
Decomposition) scipy.linalg.lu(A)
Matrix decomposition : Matrisi çarpanlarına ayırma ( matrix
factorization)
factoring (çarpanlarına ayırma)
LU Matrix Decomposition
LU yeniden kompozisyonu (LU Decomposition) kare bir matrisin L ve
üçgenn matrislerinin çarpımı şeklinde çarpanlarına ayrılmasıdır.
A=L.U
Ya da noktasız gösterimle
A = LU

A kare matrisdir (square matrix) bunu L ve U şeklinde iki matris ile


çarpanlarına ayırıyoruz. L alt üçgen matris (lower triangle matrix) ve U üst
üçgen matrisdir (the upper triangle matrix). Çarpanlar (The factors) L ve U
üçgen matrislerdir.

183
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: The LU decomposition Scipy.lnalg .lu()


function
3×3 kare matris tanımlıyor. LU decomposition hesaplanıyor. Ve original
matris bileşenlerinden yeniden oluşturuluyor.

from numpy import array


from scipy.linalg import lu
# 3×3 kare matris tanımlıyor
A = array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(A)
# LU decomposition : Matrisi Çarpanlarına Ayırma
P, L, U = lu(A)
print(P)
print(L)
print(U)
# reconstruct
B = P.dot(L).dot(U)
print(B)

184
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

………………….

185
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: LU decomposition scipy.linalg.lu(A)


L, U ve Permütasyon (permutation) matrisi P

import pprint
import scipy
import scipy.linalg # SciPy Linear Algebra Library

A = scipy.array([ [7, 3, -1, 2], [3, 8, 1, -4], [-1, 1, 4, -1], [2, -4, -1, 6] ])
P, L, U = scipy.linalg.lu(A)

print ("A:")
pprint.pprint(A)
print ("P:")
pprint.pprint(P)
print ("L:")
pprint.pprint(L)
print ("U:")
pprint.pprint(U)

186
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

II.3. SCIPY İNTEGRAL SCIPY.INTEGRATE

UYGULAMA: Scipy Genel İntegral Alma


integrate.quad()

dx: x ekseni boyunca artım(slice)

from scipy import integrate

x2 = lambda x: x**2
# x2 integrali alınacak fonksiyon ve [0,6] integral aralığı( interval)
I=integrate.quad(x2, 0, 6)

print(I)

Hatırlatma: nin İntegrali dür. Analitik sonuç tam 72 dir.

187
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Scipy İntegral Alma integrate.quad()


import scipy.integrate as integrate
import scipy.special as special

# jv(2.5, x) Bessel fonksiyonu ve [0,4.5] integral aralığı( interval)


result = integrate.quad(lambda x: special.jv(2.5,x), 0, 4.5)
print(result)

General integration (quad) integrate.quad(lambda x:


special.jv(2.5,x), 0, 4.5)
quad fonksiyono tek feğişkenli fonksiyonların iki nokta araaında integralini
almak için kullanılır. Noktalar sonsuz limiti gösteten sonsuz şekline de olabilir.
±∞ (± inf).

188
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Scipy Türev almak derivative(f, ,dx)


from scipy.misc import derivative
def f(x):
return x**3 + x**2
D=derivative(f, 1.0, dx=1e-6)
print(D)

analitik sonucu 5 (3x**2 + 2x)

189
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

II.3. SCIPY ÖZEL FONKSİYONLAR


Scipy okyanusunun fonksiyonlarına bu kitapta girmiyoruz. Sadece
fonksiyon gruplarının başlıklarını vererek geçiyoruz. Sırf bu kısımdan 2-3 ciltlik
bir kitap çıkar.

Özel Fonksiyonlar (scipy.special)


Airy Fonksiyonları
Elliptic Fonksiyonlar ve İntegraller
Bessel Fonksiyonları
Zeros of Bessel Fonksiyonları
Faster versions of common Bessel Fonksiyonları
Integrals of Bessel Fonksiyonları
Derivatives of Bessel Fonksiyonları
Spherical Bessel Fonksiyonları
Riccati-Bessel Fonksiyonları
Struve Fonksiyonları
Raw Statistical Fonksiyonları
Information TheoryFonksiyonları
Gamma and Related Fonksiyonları
Error Function and Fresnel Integrals
Legendre Fonksiyonları
Ellipsoidal Harmonics
Orthogonal polynomials
Hypergeometric Fonksiyonları
Parabolic Cylinder Fonksiyonları
Mathieu ve Related Fonksiyonları
Spheroidal Wave Fonksiyonları
Kelvin Fonksiyonları
Combinatorics
Lambert W and Related Fonksiyonları
Other Special Fonksiyonları

190
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Scipy Özel Fonksiyonlar scipy.special


Matematiksel Fiziğin(mathematical physics) Özel Fonksiyonları : Airy,
elliptic, bessel, gamma, beta, hypergeometric, parabolic cylinder, mathieu,
spheroidal wave, struve, and kelvin functions.

BESSEL FONKSİYONLARI
Silindirik koordinatlarda tanımlanan bir potansiyel fonksiyonunun
çözümü bessel fonksiyonlarıdır.
Bessel Fonksiyonları klasik elektromanyetik teoride silindirik şekilli
geometrilerin potansiyellerini , yine silindirik koordinatlarda ısı denkleminin
çözümünü içeren fonksiyonlardır. Silindirik koordinatlardaki alan probleminin
çözümünde kullanılırlar. Bessel diferansiyel denklemi

191
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Scipy special BESSEL ve Matplotlib


import numpy as np
from scipy import special
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm

def drumhead_height(n, k, distance, angle, t):


kth_zero = special.jn_zeros(n, k)[-1]
return np.cos(t) * np.cos(n*angle) * special.jn(n, distance*kth_zero)

theta = np.r_[0:2*np.pi:50j]
radius = np.r_[0:1:50j]
x = np.array([r * np.cos(theta) for r in radius])
y = np.array([r * np.sin(theta) for r in radius])
z = np.array([drumhead_height(1, 1, r, theta, 0.5) for r in radius])
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap=cm.jet)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()

192
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

*****************************************

193
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III. PYTHON MATPLOTLIB ile


Grafik Çizimleri
Pylab ve matplotlib.pyplot arasındaki farkın
açıklanması
Matplotlib de 2 çizim modülü vardır Pylab ve Pyplot. Her ikisinin
başta programa çağrılması da farklıdır.
from pylab import *
plot(x,f(x), ) veya

import matplotlib.pyplot as plt


import numpy as np
plt.plot(x,f(x), )

Pylab da matplotlib.pyplot da matplotlib içindeki birer modül.


Pyplot interaktif1 çizime uygun değil. Pylab ise interaktif
hesaplamalara ve çizime (interactive calculations and plotting)
uygun.

Pylab matlab ‘e daha fazla benzer.


Pylab numpy yi içeriyor import numpy demeden numpy komutu
kullanılıyor. Örneğin linspace kullanıldı. Direkt exp kullanıldı.

194
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.1. MATPLOTLIB DE plot(x,f(x), color=" ", lw=2)


ile 2 BOYUTTA FONKSİYON EĞRİSİ ÇİZİMLERİ

UYGULAMA: Pylab 6*x


from pylab import *
x = linspace(0, 6*pi, 60)
plot(x,6*x, color="brown", lw=2)
plt.show()

195
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab 6*x**2


from pylab import *
x = linspace(0, 6*pi, 60)
plot(x,6*x**2, color="brown", lw=2)
plt.show()

196
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab exp()


from pylab import *
x = linspace(0, 6*pi, 60)
plot(x,exp(0.2*x), color="pink", lw=2)
plt.show()

197
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab exp(-)


from pylab import *
x = linspace(0, 6*pi, 60)
plot(x, exp(-0.2*x), color="0.7", lw=2)
plt.show()

198
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab -exp( )


from pylab import *
x = linspace(0, 6*pi, 60)
plot(x,-exp(0.2*x), color="0.7", lw=2)
plt.show()

199
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab -exp(-)


from pylab import *
x = linspace(0, 6*pi, 60)
plot(x,-exp(-0.2*x), color="0.7", lw=2)
plt.show()

200
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab sin(x) cos(x) sin(x)


from pylab import *

x = linspace(-6, 6, 60)
plot(x, sin(x),'r-')
plot(x, cos(x), )
plot(x, -sin(x), 'g--')
show()

201
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab SIN() COS()

from pylab import *


x = linspace(0, 5*pi, 100) # 0 dan 5 pi ye kadar 100 e böl aralığı demek
plot(x, sin(x), "r", x, cos(x), "b")
plt.show()

202
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab sin(x) cos(x)


from pylab import *

# Alttaki linspace() 0 dan 6 pi ye kadar 60 a böl aralığı demek


x = linspace(0, 6*pi, 60)
# sin(x) g green yeşil ile ilk eğri, cos(x) y yellow sarı ile 2nci eğri
plot(x, sin(x), "g*-", x, cos(x), "y*--")
plt.show()

SİNÜSÜ YEŞİL yapdım g green ile.


COSİNÜSÜ DE yellow y ile
Noktaları yeşil sinüs de de * ,cosinüs de * ile gösterdim
Eğride nokta aralarını yeşil sinüs de – la sürekli çizgi olarak, eflatun
cosinüsde – la kesikli çizgi olarak gösterdim.
Detaylar da bu kadar net plot komutunda
203
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab Sigmoid Eğrisi, Lojistik Fonksiyonu


from pylab import *

x = linspace(-6, 6, 120)
plot(x,(1/(1+exp(-x))), color="red", lw=2)
plt.show()

import matplotlib.pylab as plt diye de atanabiliyor

Not: exp() fonksiyonu

import math
math.exp(-x) ile de kullanılıyor.

204
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab Ters Sigmoid Eğrisi 1/(1+ exp())


from pylab import *
x = linspace(-6, 6, 120)
plot(x,(1/(1+exp(x))), color="red", lw=2)
plt.show()

205
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab 6*x*cos(x)


from pylab import *
x = linspace(0, 6*pi, 60) # 0 dan 6*pi ye kadar 60 a bölünmüş aralıklarla demek
plot(x,6*x*cos(x), color="r", lw=2)
plt.show()

206
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pylab EXP() SIN()


from pylab import *
x = linspace(0, 6*pi, 60)
#Asıl sönümlenen eğrinin çizimi
plot(x, exp(-0.2*x)*sin(2*x), color="0")
# 2 tane sınır eğrisinin çizimi
plot(x, exp(-0.2*x), x, -exp(-0.2*x), color="0.7", lw=2)
plt.show()

207
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:Matplotlib Pyplot SIN() COS()


import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 20, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
# Plot the sin and cos functions
plt.plot(x , y1, "-g", label="sine")
plt.plot(x , y2, "-b", label="cos")
plt.show()

208
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOLIB pyplot SIN() COS()


import numpy as np
x = np.linspace(0,6,100)
y = np.sin(x)
z = np.cos(x)

import matplotlib.pyplot as plt


plt.plot(x,y,'r--',linewidth=3)
plt.plot(x,z,'k:',linewidth=2)
plt.legend(['y','z'])
plt.xlabel('x')
plt.ylabel('values')
plt.xlim([0, 3])
plt.ylim([-1.5, 1.5])
plt.savefig('myFigure.png')
plt.savefig('myFigure.eps')
plt.show()

209
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB pyplot SIN()

import matplotlib.pyplot as plt


import numpy as np

t = np.arange(0.0, 2.0, 0.01)


#SİNÜS FONKSİYONU ÇİZİYOR
s = 1 + np.sin(2*np.pi*t)
plt.plot(t, s)

plt.xlabel('Zaman (s)')
plt.ylabel('Voltaj (mV)')
plt.title('Voltajın Sinüs Fonksiyonu Çizimi')
plt.grid(True)
plt.savefig("test.png")
plt.show()

210
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB pyplot SIN() Subplotzero


Subplotzero’ da eksenlee 0,0 noktasından geçiyor.Bu belirtilmediğinde,
normalde eksenler çizimin alt limitleinden başlıyor.

from mpl_toolkits.axisartist.axislines import SubplotZero


import matplotlib.pyplot as plt
import numpy as np

if 1:
fig = plt.figure(1)
ax = SubplotZero(fig, 111)
fig.add_subplot(ax)

for direction in ["xzero", "yzero"]:


ax.axis[direction].set_axisline_style("-|>")
ax.axis[direction].set_visible(True)

for direction in ["left", "right", "bottom", "top"]:


ax.axis[direction].set_visible(False)

x = np.linspace(-0.5, 1., 100)


ax.plot(x, np.sin(x*np.pi)) #SİNÜS FONKSİYONU ÇİZİYOR

plt.show()

211
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

grid yerine axisartist yazınca çalışıyor

212
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB pyplot SIN() Hostsubplot


Hostsubplot fazladan eksen(axis) için. Bu örnekte üst ve sağ
taraftaki eksenleei ekkiyor.

import matplotlib.pyplot as plt


from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA
import numpy as np

ax = host_subplot(111, axes_class=AA.Axes)
xx = np.arange(0, 2*np.pi, 0.01)
ax.plot(xx, np.sin(xx)) #SİNÜS FONKSİYONU ÇİZİYOR

# ax2 üst "top" ve sağ eksenlerden(axis) sorumludur


ax2=ax.twin()
ax2.set_xticks([0., .5*np.pi, np.pi, 1.5*np.pi, 2*np.pi])
ax2.set_xticklabels(["$0$", r"$\frac{1}{2}\pi$",
r"$\pi$", r"$\frac{3}{2}\pi$", r"$2\pi$"])

ax2.axis["right"].major_ticklabels.set_visible(False)
ax2.axis["top"].major_ticklabels.set_visible(True)

plt.draw()
plt.show()

213
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

214
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB pyplot plt.plot([1,2,3,4],


[1,4,9,16],ro)
Aynı girişe ro eklenince

Sadece noktaları çiziyor birleştirmiyor

import matplotlib.pyplot as plt


plt.plot([1,2,3,4], [1,4,9,16], 'ro')
plt.axis([0, 6, 0, 20])
plt.show()

215
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB pyplot


engineering_formatter
EngFormatter mühendisler ve bilim adamları için faydalı bir eksen gösterim
şekli. Örneğin EngFormatter(unit='Hz') dediğimizde eksen birimi hz hertz
oluyor.

import matplotlib.pyplot as plt


import numpy as np

from matplotlib.ticker import EngFormatter

prng = np.random.RandomState(123)

fig, ax = plt.subplots()
ax.set_xscale('log')
formatter = EngFormatter(unit='Hz')
ax.xaxis.set_major_formatter(formatter)

xs = np.logspace(1, 9, 100)
ys = (0.8 + 0.4 * prng.uniform(size=100)) * np.log10(xs)**2
ax.plot(xs, ys)

plt.show()

216
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

217
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:MATPLOTLIB PYPLOT

import numpy as np
import matplotlib.pyplot as plt

# t 200ms aralıklarla (intervals) zamanı belirtiyor


t = np.arange(0., 6., 0.2)
# kırmızı kesik çizgiler(dashes), eflatun(magenda) kareler ve yeşil
üçgenler
# tek plot komutu içinde 3 ayrı eğri tanımlanıyor.
plt.plot(t, t, 'r--', t, t**2, 'ms', t, t**3, 'g^')
plt.show()

t yi, t kare(t**2) yi ve t küp(t**3) ü çiziyor.3 eğri çiziyor yani.

218
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: ÇOKLU EKSEN TAKIMLARI İLE GRAFİK


ÇİZİMİ Subplot()
Çoklu Çizimlerle(multiple figures) ve eksenlerle(axes) çalışmak.
Sy 400’‘de subplot’un açıklearning9 amasını verdik.
import numpy as np
import matplotlib.pyplot as plt

def f(t):
return np.exp(-t) * np.cos(2*np.pi*t)

t1 = np.arange(0.0, 6.0, 0.1)


t2 = np.arange(0.0, 6.0, 0.02)

plt.figure(1)
# 211 2 satır 1 sütuna böl pçizim penceresini.bu 1 de demek
plt.subplot(211)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')

# 212 2 satır 1 sütuna böl çizim penceresini. Bu 2 de demek


plt.subplot(212)
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.show()

Çizim penceresini subplot(212) nin ilk 2 rakamına göre 2 sstır 1


sütuna bölüyoruz. 3ncü rakam ise çizimim hangi kısımda
olacağını belirliyor. 1 ise üstte 2 ise altta.

219
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

220
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pyplot plt.gcf (get current figure) ve


fig.set_size_inches( , )
fig.set_size_inches() ile görüntünün boyutlarını değiştirmek

import matplotlib.pyplot as plt


import numpy as np
from numpy import random

x = np.linspace(0,20,19)
y = random.rand(19)
plt.scatter(x,y)

# Şekli yeniden Düzenlemek


fig = plt.gcf()
fig.set_size_inches(12,2)

plt.show()

221
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pyplot plt.gca() Get current axes


to change the limits on the y-axis
import matplotlib.pyplot as plt
import numpy as np
from numpy import random

x = np.linspace(0,20,19)
y = random.rand(19)
plt.scatter(x,y)

# oluşturulan eksenlerin limitlerini değiştirmek (retrieve the axis)


axis = plt.gca()
axis.set_ylim(-6,6)

plt.show()

222
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.2. DİZİ(ARRAY) DEN ÇİZİM plt.plot([


x1,x2,x3, x4], [y1 ,y2 ,y3 ,y4 ])
UYGULAMA: MATPLOTLIB ARRAY İLE pypolt(x,y)
import numpy as np
import matplotlib.pyplot as plt
y=[ 6, 9, 12, 16, 24, 22, 20, 16, 24, 28, 32, 46, 51]
x=range(len(y))
plt.plot(x,y)
plt.show()

en basitinden bir çizim


x o için y 6 x 1 için y 9 olarak algılayıp çiziyor.

223
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB ARRAY İLE


import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.xlabel('x yatay ekseni')
plt.ylabel('some numbers')
plt.show()

224
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pyplot Dizi(Array) ile Nokta nokta çizim


import matplotlib.pyplot as plt
plt.plot([1,2,3,4], [1,4,9,16], 'ro')
plt.axis([0, 6, 0, 20])
plt.show()

'ro' deyince nokta nokta gösteriyor. Bir sonraki uygulamada aynısını 'ro' suz
çizgi şeklinde yapacağız.

225
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB Pyplot Dizi(Array) ile Çizim


import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.xlabel('X YATAY EKSENİ')
plt.ylabel('Y DİKEY EKSENİ')
plt.show()

226
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA PRATİĞİ: Python Dolar Grafiği Programı


import numpy as np
import matplotlib.pyplot as plt

y=[ 6.623, 6.756, 6.768, 6.769, 6.83, 6.9]


x=[ 8.30, 9, 9.30, 9.43, 10.10, 10.20]
plt.plot(x,y)

# x ekseni o dan 24 e kadar(saatler), y ekseni 0 dan 10 a kadar demek


plt.axis([0, 24, 0, 10])
plt.xlabel('x gün saat yatay ekseni')
plt.ylabel('Dolar/TL')
plt.show()

OLDU HELAL

227
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Fiyat eksenini 8 e indirelim. Saat kısmını da sabah 8 den başlatıp akşam 20 de


bitirelim. Daha belirgin olsun. Değişimi artışı daha net belirgin görebilmek için

import numpy as np
import matplotlib.pyplot as plt

y=[ 6.623, 6.756, 6.768, 6.769, 6.83, 6.9]


x=[ 8.30, 9, 9.30, 9.43, 10.10, 10.20]
plt.plot(x,y)

# x ekseni 8 dan 20 ye kadar(saatler), y ekseni 0 dan 8 e kadar demek


plt.axis([8, 20, 0, 8])
plt.xlabel('x gün saat yatay ekseni')
plt.ylabel('Dolar/TL')

plt.show()

228
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Doları 6 dan da başlatabiliriz.

import numpy as np
import matplotlib.pyplot as plt

y=[ 6.623, 6.756, 6.768, 6.769, 6.83, 6.9]


x=[ 8.30, 9, 9.30, 9.43, 10.10, 10.20]
plt.plot(x,y)

# x ekseni 8 dan 20 ye kadar(saatler), y ekseni 6 dan 8 e kadar demek


plt.axis([8, 20, 6, 8])
plt.xlabel('x gün saat yatay ekseni')
plt.ylabel('Dolar/TL')

plt.show()
Şimdi daha iyi oldu. Sabah yarım saat-1 saat içinde bu programı yazdık. Helal

229
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Fiyat ekseninin üst sınırını (doları) 8’e indirelim. Saat kısmını da sabah 8
den başlatıp akşam 20‘de bitirelim. Daha belirgin olsun. Değişimi artışı daha net
belirgin görebilmek için.

import numpy as np
import matplotlib.pyplot as plt

y=[ 6.623, 6.756, 6.768, 6.769, 6.83, 6.9]


x=[ 8.30, 9, 9.30, 9.43, 10.10, 10.20]
plt.plot(x,y)
# x ekseni 8 dan 20 ye kadar(saatler), y ekseni 6 dan 8 e kadar demek
plt.axis([8, 20, 6, 8])
plt.xlabel('x gün saat yatay ekseni')
plt.ylabel('Dolar/TL')
plt.show()

Şimdi daha iyi oldu. Sabah yarım saat-1 saat içinde bu programı yazdık. Helal
Bana.

230
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

20 Mayıs sabahı olan tam gerçek değerler ile


import numpy as np
import matplotlib.pyplot as plt

y=[ 6.623, 6.756, 6.768, 6.769, 6.772, 6.762, 6.766, 6.767]


x=[ 8.30, 9.06, 9.30, 9.43,9.56, 10.10, 10.22,10.24]
plt.plot(x,y)

# x ekseni 8 dan 20 ye kadar(saatler), y ekseni 6 dan 8 e kadar demek


plt.axis([8, 20, 6, 8])
plt.xlabel('Günün Sabah saatleri x yatay ekseni')
plt.ylabel('Dolar/TL')

plt.show()

231
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Dolar fiyat aralığını, y eksenini 6.5-7.5 arası yaptıktan sonra:


Daha berlirgin oldu.
import numpy as np
import matplotlib.pyplot as plt

y=[ 6.623, 6.756, 6.768, 6.769, 6.772, 6.762, 6.766, 6.767]


x=[ 8.30, 9.06, 9.30, 9.43,9.56, 10.10, 10.22,10.24]
plt.plot(x,y)

# x ekseni o dan 24 e kadar(saatler), y ekseni 6.5 den 7.5 e kadar demek


plt.axis([8, 20, 6.5, 7.5])
plt.xlabel('Günün Sabah saatleri x yatay ekseni')
plt.ylabel('Dolar/TL')

plt.show()

232
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: MATPLOTLIB pyplot


plt.plot([1,2,3,4],[8000,8200,8600,9200])
import matplotlib.pyplot as plt

plt.plot([1,2,3,4], [8000,8200,8600,9200])
plt.axis([0, 6, 7000, 10000])
plt.xlabel('x gün saat yatay ekseni')
plt.ylabel('BTC /Dolar')
plt.show()

233
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB pyplot Eksenlerin adını


yazmak/LABELING AXES ve başlığı yazmak
import numpy as np
import matplotlib.pyplot as plt
y=[ 6, 9, 12, 16, 24, 22, 20, 16, 24, 28, 32, 46, 51]
x=range(len(y))
plt.xlabel("yatay x ekseni")
plt.ylabel("dikey y ekseni")
plt.title("DENEME ÇİZİMİ")

plt.plot(x,y)
plt.show()

234
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB pyplot plt.plot([1,2,3,4],


[1,4,9,16])

import matplotlib.pyplot as plt


plt.plot([1,2,3,4], [1,4,9,16])
plt.axis([0, 6, 0, 20])
plt.show()

235
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.3. GERİ PLAN RENGİ, EKSEN RENKLERİ


UYGULAMA: Matplotlib Sitilleri Kompoze etmek
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

x =np.linspace(0,20,19)
y=2*x

plt.plot(x, y, marker='*', color='r', linestyle='none')


# X ekseni limitleri -0.5 den 20 ye kadar demek
plt.xlim(0, 20)
# Y ekseni limitleri-2 den 50 ye kadar demek
plt.ylim([-2, 50])
# Başlık
plt.title('Deneme Eğrisi')
# Eksen Başlıkları(Etiketleri)
plt.xlabel("Yatay Koordinatlar")
plt.ylabel('Yükseklikler')
plt.show()

236
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Aynı örnekte plt.plot(x, y, marker='*', color='r', linestyle='none') dan


marker='* ve linestyle='none' ı silince
plt.plot(x, y, ', color='r' ) iken bu sefer düz çizgi olarak gösterdi

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

x =np.linspace(0,20,19)
y=2*x

plt.plot(x, y, color='r')
# X ekseni limitleri -0.5 den 20 ye kadar demek
plt.xlim(0, 20)
# Y ekseni limitleri-2 den 50 ye kadar demek
plt.ylim([-2, 50])
plt.title('Deneme Eğrisi')

# Eksen Başlıkları(Etiketleri)
plt.xlabel("Yatay Koordinatlar")
plt.ylabel('Yükseklikler')

plt.show()

237
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:GeriPlan rengini Değiştirmek


facecolor
import numpy as np
import matplotlib.pyplot as plt

x =np.linspace(0,20,19)
y=2*x

# bu eksenlerin içinin geri plan rengini değiştiriyor


# plottan önce konulmalı bu satırlar yoksa tüm ekran pembe oluyor.
# Çizim görünmüyor
plt.axes(facecolor="pink")

plt.plot(x, y, color='r')
# X ekseni limitleri -0.5 den 20 ye kadar demekplt.xlim(0, 20)
# Y ekseni limitleri-2 den 50 ye kadar demek
plt.ylim([-2, 50])
plt.title('Deneme Eğrisi')
# Eksen Başlıkları(Etiketleri)
plt.xlabel("Yatay Koordinatlar")
plt.ylabel('Yükseklikler')
plt.show()

238
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Bununla da oluyor.
# plottan önce konulmalı bu satırlar yoksa yine beyaz görünüyor geriplan

plt.rcParams['axes.facecolor']='pink'
plt.rcParams['savefig.facecolor']='pink'

239
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib’de Geri plan rengini değiştirmek


plt.axes(facecolor="orange") Eksenlerin içi

import matplotlib.pyplot as plt

# bu eksenlerin içinin geri plan rengini değiştiriyor


plt.axes(facecolor="orange")
plt.axis([0, 6, 0, 20])
plt.plot([1,2,3,4], [1,4,9,16])
plt.show()

plt.axes(facecolor="orange") bu satır plt.axis den de plt.plot danda


önce olmalı
plt.plot tan sonra olursa heryer kavuniçi oluyor ve çizim gözükmüyor
plt.axis den sonra olursa da axis deki eksen sınırları değil çizimin sınırları
görülüyor

240
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Bu kenarların eksenlerin dışının rengini değiştiriyor


fig = plt.figure()
fig.set_facecolor('b')

Bu tüm geriplan rengini7eksenlerin yüzrengini (face color of axes)


değiştiriyor
ax.set_facecolor('b')

bu eksenlerin içinin geri plan rengini değiştiriyor


ax = plt.axes()
ax.set_facecolor("orange")

ya da

ax.set(facecolor = "orange")
plt.show()

241
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib geriplan rengini değiştirmek


facecolor='#FFFFCC'
from matplotlib.widgets import Cursor
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(19680801)

fig = plt.figure(figsize=(8, 6))


ax = fig.add_subplot(111, facecolor='#FFFFCC')

x, y = 4*(np.random.rand(2, 100) - .5)


ax.plot(x, y, 'o')
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)
cursor = Cursor(ax, useblit=True, color='red', linewidth=2)
plt.show()

242
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib cmap=cm.jet colormap


kullanımı
Torch da Düşündüm, çözdüm denedim oldu. Buraya da aktardım.
plt.imshow( , cmap=cm.jet) den

import matplotlib.pyplot as plt


import numpy as np
from matplotlib import cm

# 2 Boyutlu Dizi (köşegende doğrussl arran değerlee)


dizi = np.diag(range(22))

plt.matshow(dizi, cmap=cm.Reds)
plt.show()

243
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib Eksen rengini değiştirmek


matplotlib.rc('axes',edgecolor='r')
import matplotlib
from matplotlib import pyplot as plt

matplotlib.rc('axes',edgecolor='r')
plt.plot([0, 1], [0, 1])
plt.savefig('D:/Bilim/deneme.png')
plt.show()

244
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib Eksen rengini ve eksen dışının


rengini değiştirmek plt.rc_context({'axes.edgecolor':
'figure.facecolor':'yellow})

import matplotlib.pyplot as plt


with plt.rc_context({'axes.edgecolor':'orange', 'xtick.color':'red',
'ytick.color':'green', 'figure.facecolor':'yellow'}):
fig, (ax1, ax2) = plt.subplots(1,2)
ax1.plot(range(10))
ax2.plot(range(10))
fig, ax = plt.subplots()
ax.plot(range(10))

plt.show()

245
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib’de Geri plan rengini


değiştirmek plt.gcf().set_facecolor("red") eksenlerin dışı
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

# 2 Boyutlu Dizi (köşegende doğrussl olarak artan değerler)


dizi = np.diag(range(22))

plt.matshow(dizi, cmap=cm.Reds)
# bu kenarların eksenlerin dışının rengini değiştiriyor
plt.gcf().set_facecolor("red")
plt.show()

246
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib Geriplan Sitillerinin listesi


import matplotlib.pyplot as plt

print(plt.style.available))

['Solarize_Light2', '_classic_test_patch', 'bmh', 'classic',


'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn',
'seaborn-bright', 'seaborn-colorblind', 'seaborn-dark', 'seaborn-dark-
palette', 'seaborn-darkgrid', 'seaborn-deep', 'seaborn-muted', 'seaborn-
notebook', 'seaborn-paper', 'seaborn-pastel', 'seaborn-poster', 'seaborn-
talk', 'seaborn-ticks', 'seaborn-white', 'seaborn-whitegrid', 'tableau-
colorblind10']

247
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib geriplan stili


matplotlib.style.use(sty)
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

th = np.linspace(0, 2*np.pi, 128)

def demo(sty):
mpl.style.use(sty)
fig, ax = plt.subplots(figsize=(3, 3))
ax.set_title('style: {!r}'.format(sty), color='C0')
ax.plot(th, np.cos(th), 'C1', label='C1')
ax.plot(th, np.sin(th), 'C2', label='C2')
ax.legend()

demo('default')
# sty ye yani mpl.style.use(sty) a seaborn sitili yollanıyor
demo('seaborn')
plt.show()

248
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

demo('seaborn-dark')

demo('dark_background')

249
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib
plt.style.context('dark_background'):
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

with plt.style.context('dark_background'):
plt.plot(np.sin(np.linspace(0, 2 * np.pi)), 'r-o')
plt.show()

250
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.4. Linspace ve meshgrid ile Matplotlib


de Çizim
UYGULAMA: MATPLOTLIB np.linspace(x1 ,x2,n)
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 3, 20)
y = np.linspace(0, 9, 20)
plt.plot(x, y)
plt.plot(x, y, 'o')
plt.show()

251
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pylab numpy.linspace( )


import numpy as np
import pylab as plt
#0 6 arasında 30 nokta üret
# numpy.linspace() ‘in Grafik Tanıtımı

# Başlangıç = 0
# Bitiş = 6
x1 = np.linspace(0, 6, 30, endpoint = True)
y1 = np.zeros(30)

plt.plot(x1, y1, 'o')


plt.xlim(-0.2, 6.2)
plt.show()

252
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pylab numpy.linspace ile


numpy.meshgrid( )

import numpy as np
import pylab as plt

# 0 dan 6 ya kadar aralığı 6 ya bölüp noktalar oluştur demek


xd = np.linspace(0,6,6)
yd = np.linspace(0,6,6)
x, y = np.meshgrid(xd, yd)

plt.plot(x, y, marker='*', color='r', linestyle='none')


plt.show()

Aynı x ve y koordinatları bu şekilde de oluşturulabilir


xd = np.array([0, 1, 2, 3, 4, 5, 6]);
yd = np.array([0, 1, 2, 3, 4, 5, 6]);

253
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot Numpy.linspace(, , ,


endpoint=False)
import numpy as np
import matplotlib.pyplot as plt

N=8
y = np.zeros(N)
x1 = np.linspace(0, 10, N, endpoint=True)
x2 = np.linspace(0, 10, N, endpoint=False)
plt.plot(x1, y, 'o')
plt.plot(x2, y + 0.5, 'o')
plt.ylim([-0.5, 1])
plt.show()

254
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot Numpy.linspace(, , ,


endpoint=False)
import numpy as np
import matplotlib.pyplot as plt

y = np.zeros(10)
a=np.linspace(0, 10, 10)
print(a)
b=np.linspace(0, 10, 10, endpoint=True)
print(b)
D=np.linspace(0, 10, 10, endpoint=False)
print(D)

plt.plot(a, y, 'o')
plt.plot(b, y + 0.5, 'o')
plt.plot(D, y + 1, 'o')
plt.ylim([-0.5, 1.5])
plt.show()

255
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIP np.linspace()


import numpy as np
import matplotlib.pylab as plt
#x ekseninde (0,1) aralığında lnspace ile x noktaları tanımlıyor
x = np.linspace(0, 1, 100)

plt.plot(x, x**2)
plt.show()

256
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIP np.linspace()


Aynı uygulama aralığı değiştirdim: 0-10 aralığı/interval

import numpy as np
import matplotlib.pylab as plt

#x ekseninde (0,10) aralığında lnspace ile x noktaları tanımlıyor


x = np.linspace(0, 10, 100)

plt.plot(x, x**2)
plt.show()

257
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB Eksen Oranları


set_yscale('symlog' linear
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import NullFormatter

np.random.seed(1)
y = np.random.normal(loc=0.5, scale=0.4, size=1000)
y = y[(y > 0) & (y < 1)]
y.sort()
x = np.arange(len(y))

# Çeşitli eksen oranları ile çizim


fig, axs = plt.subplots(2, 2, sharex=True)
fig.subplots_adjust(left=0.08, right=0.98, wspace=0.3)

# Doğrusal(lineer)
ax = axs[0, 0]
ax.plot(x, y)
ax.set_yscale('linear')
ax.set_title('linear')
ax.grid(True)

# logaritma
ax = axs[0, 1]
ax.plot(x, y)
ax.set_yscale('log')
ax.set_title('log')
ax.grid(True)

# Simetrij logaritma symmetric log


ax = axs[1, 1]
ax.plot(x, y - y.mean())
ax.set_yscale('symlog', linthreshy=0.02)
ax.set_title('symlog')

258
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

ax.grid(True)

# logit
ax = axs[1, 0]
ax.plot(x, y)
ax.set_yscale('logit')
ax.set_title('logit')
ax.grid(True)
ax.yaxis.set_minor_formatter(NullFormatter())

plt.show()

259
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.5. mathplotlib.pyplot.streamplot
Vektörel akışın akışçizgilerini (streamlines of a vector flow) çizer.

UYGULAMA: MATPLOT STREAM Değişen Renk

import numpy as np
import matplotlib.pyplot as plt

Y, X = np.mgrid[-2:2:100j, -2:2:100j]
U = -2 - X**2 + Y
V = 1 + X - Y**2
# hız = np.sqrt(U*U + V*V)

# Akış çizgisi(streamline) boyunca Değişen Renk


fig0, ax0 = plt.subplots()
strm = ax0.streamplot(X, Y, U, V, color=U, linewidth=2,
cmap=plt.cm.autumn)
ax0.set_title('Değişen Renk')
# Değişen Renk kullandığımız için RenkÇubuğu(colorbar) ekliyoruz.
fig0.colorbar(strm.lines)

plt.show()

260
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

261
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOT STREAMPLOT


import numpy as np

import matplotlib.pyplot as plt

Y, X = np.mgrid[-2:2:100j, -2:2:100j]
U = -2 - X**2 + Y
V = 1 + X - Y**2
# hız = np.sqrt(U*U + V*V)

# Akış çizgisi(streamline) boyunca Değişen Yoğunluk


fig0, ax0 = plt.subplots()
ax0.streamplot(X, Y, U, V,density=[0.5, 1])
ax0.set_title('Değişen Yoğunluk')

plt.show()

262
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

263
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOT STREAMPLOT


import numpy as np

import matplotlib.pyplot as plt

Y, X = np.mgrid[-3:3:100j, -3:3:100j]
U = -1 - X**2 + Y
V = 1 + X - Y**2
speed = np.sqrt(U*U + V*V)

# Çizim alanını 1 satır 2 kolon olarak belirtip 2 çizim için yer tanımlıyoruz
# Böyle alttaki gibi de 2 kolon tanımlayabilirdik
# gs = gridspec.GridSpec(nrows=1, ncols=2)
# ax1 = fig.add_subplot(gs[0, 0])

fig1, (ax1, ax2) = plt.subplots(ncols=2)


ax1.streamplot(X, Y, U, V, density=[0.5, 1],color='g' )
lw = 5*speed / speed.max()
ax2.streamplot(X, Y, U, V, density=0.6, color='r', linewidth=lw)

plt.show()

264
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

265
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.6. plt.contour() ve plt.contourf()


Kontür(contour) çizgileri ve dolgu
kontürler (filled contours) Çizimi
UYGULAMA: pyplot.contour(x,y,a) making contour plot
from numpy import *
import matplotlib.pyplot as plt
x = linspace(0,10,51)
y = linspace(0,8,41)
(X,Y) = meshgrid(x,y)
a = exp(-((X-2.5)**2 + (Y-4)**2)/4) - exp(-((X-7.5)**2 + (Y-4)**2)/4)
c = plt.contour(x,y, ) a
l = plt.clabel(c)
lx = plt.xlabel("x")
ly = plt.ylabel("y")
plt.show()

266
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: = plt.contour(x,y,a) CONTOUR PLOT

from numpy import *


import matplotlib.pyplot as plt
x = linspace(0,10,51)
y = linspace(0,8,41)
(X,Y) = meshgrid(x,y)
a = exp(-((X-4)**2 + (Y-4)**2)/6) - exp(-((X-6)**2 + (Y-4)**2)/6)
# g green yani yeşil renkte çiziyor
c = plt.contour(x,y,a,linspace(-1,1,11),colors='g',linewidths=4,
linestyles='dotted')
lx = plt.xlabel("x")
ly = plt.ylabel("y")
plt.show()

Sırala
ma
değerl
eri
(tuple
or list)
okont
ur
seviyelerini göstermek için kullanılabilir.
267
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: plt.contourf(x,y,a) CONTOUR DA cmap


COLORMAP KULLANIMI
from numpy import *
import matplotlib.pyplot as plt
x = linspace(0,10,51)
y = linspace(0,8,41)
(X,Y) = meshgrid(x,y)
a = exp(-((X-4)**2 + (Y-4)**2)/6) - exp(-((X-6)**2 + (Y-4)**2)/6)
c = plt.contourf(x,y,a,linspace(-1,1,11), cmap='spring')
# colorbar a renk çubuğuna orientation='vertical' yani dik dedik
b = plt.colorbar(c, orientation='vertical')
lx = plt.xlabel("x")
ly = plt.ylabel("y")
ax = plt.axis([0,10,0,8])
plt.show()

cmap='spring' cmap colormap kullandık.

268
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Colormap renkharitası belirtilmezse jet i kullanır.


Bazı renkharitaları(colormaps):

269
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: plt.contour(x,y,a) plt.pcolor(x,y,ac)


plt.colorbar COUNTER MESH PLOTS

from numpy import *


import matplotlib.pyplot as plt
x = linspace(0,10,51)
y = linspace(0,8,41)
(X,Y) = meshgrid(x,y)
a = exp(-((X-4)**2 + (Y-4)**2)/6) - exp(-((X-6)**2 + (Y-4)**2)/6)
ar = 0.6*(a[:-1,:-1] + a[:-1,1:] + a[1:,:-1] + a[1:,1:])
c = plt.pcolor(x,y,ar)
# colorbar a renk çubuğuna orientation='horizontal' yani yatay dedik
d = plt.colorbar(c,orientation='horizontal')
q = plt.winter()
e = plt.contour(x,y,a,linspace(-1,1,11),colors='k')
lx = plt.xlabel("x")
ly = plt.xlabel("y")
plt.show()

270
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.7. Matplotlib Ok(Arrow) Çizimi

UYGULAMA: MATPLOTLIB pyplot ARROW


import matplotlib.pyplot as plt
from matplotlib.pyplot import *
from numpy import *

x = arange(10)
y=x
plot(x, y)

# Oku oluşturmak
arr = Arrow(2, 2, 1, 1, edgecolor='white')

# Altçizim (Subplot)
ax = gca()

# Oku eklemek
ax.add_patch(arr)

# Okun rengini g green yeşil yapmak


arr.set_facecolor('g')
plt.show()

271
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

272
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot ARROW

import matplotlib.pyplot as plt


ax = plt.axes()
ax.arrow(0, 0, 0.6, 0.6 head_width=0.05, head_length=0.1, fc='k', ec='k')
plt.show()

273
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: ARROW pylab ile


import pylab as P
P.subplot(111)
# P.arrow( x, y, dx, dy, **kwargs )
P.arrow( 0.2, 0.2, 0.0, 0.6, fc="k", ec="k",
head_width=0.06, head_length=0.1 )
P.show()

274
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: ARROW İKİ ARROW pylab


import pylab as P
P.subplot(111)
# P.arrow( x, y, dx, dy, **kwargs )
P.arrow( 0.2, 0.2, 0.0, 0.6, fc="k", ec="k",
head_width=0.06, head_length=0.1)
P.arrow( 0.6, 0.2, 0.0, 0.6, fc="k", ec="k",
head_width=0.06, head_length=0.1)
P.show()

275
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB ARROW RENKLİ İKİ ARROW


pylab ile
import pylab as P

P.subplot(111)
# P.arrow( x, y, dx, dy, **kwargs )
P.arrow( 0.2, 0.2, 0.0, 0.6, fc="k", ec="k",
head_width=0.06, head_length=0.1)
P.arrow( 0.6, 0.2, 0.0, 0.6, fc="tab:orange", ec="tab:orange",
head_width=0.06, head_length=0.1)
P.show()

276
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.8. Ok alanı, Vektör Alanlarının


Görselleştirilmesi(Visualizing Vector Fields)
: meshgrid ve matplotlib Axes.quiver
Axes.quiver(*args, data=None, **kw)
2 Boyutlu Ok Alanı Çizer

quiver(U, V, **kw)
quiver(U, V, C, **kw)
quiver(X, Y, U, V, **kw)
quiver(X, Y, U, V, C, **kw)

Parametreler
X : x koordinatı
Y : y koordinatı
U : x bileşeni
V : y bileşeni
C :color Rengi

277
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOLIB pyplot QUIVER


import numpy as np
import matplotlib.pyplot as plt

n=8
X, Y = np.mgrid[0:n, 0:n]
T = np.arctan2(Y - n / 2., X - n/2.)
R = 10 + np.sqrt((Y - n / 2.0) ** 2 + (X - n / 2.0) ** 2)
U, V = R * np.cos(T), R * np.sin(T)

plt.axes([0.025, 0.025, 0.95, 0.95])


plt.quiver(X, Y, U, V, R, alpha=.5)
plt.quiver(X, Y, U, V, edgecolor='k', facecolor='None', linewidth=.5)

plt.xlim(-1, n)
plt.xticks(())
plt.ylim(-1, n)
plt.yticks(())

plt.show()

278
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

279
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB QUIVER


import matplotlib.pyplot as plt
import numpy as np

X = np.arange(-10, 10, 1)
Y = np.arange(-10, 10, 1)
U, V = np.meshgrid(X, Y)

fig, ax = plt.subplots()
q = ax.quiver(X, Y, U, V)
ax.quiverkey(q, X=0.3, Y=1.1, U=10,
label='Quiver key, length = 10', labelpos='E')

plt.show()

280
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:MATPLOTLIB QUIVER
import matplotlib.pyplot as plt
import numpy as np
from numpy import ma

X, Y = np.meshgrid(np.arange(0, 2 * np.pi, .2), np.arange(0, 2 * np.pi,


.2))
U = np.cos(X)
V = np.sin(Y)

plt.figure()
plt.title('Çizim Genişliği ile orantılı Oklar')
Q = plt.quiver(X, Y, U, V, units='width')
qk = plt.quiverkey(Q, 0.9, 0.9, 2, r'$2 \frac{m}{s}$', labelpos='E',
coordinates='figure')

plt.figure()
plt.title("pivot='mid'; her üçüncü ok ; Birimler='inches'")
Q = plt.quiver(X[::3, ::3], Y[::3, ::3], U[::3, ::3], V[::3, ::3],
pivot='mid', units='inches')
qk = plt.quiverkey(Q, 0.9, 0.9, 1, r'$1 \frac{m}{s}$', labelpos='E',
coordinates='figure')
plt.scatter(X[::3, ::3], Y[::3, ::3], color='r', s=5)

plt.show()

2 ayrı grafik çiziyor

281
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

282
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: MATPLOTLIB QUIVER VECTOR PLOTS


from numpy import *
import matplotlib.pyplot as plt
x = linspace(0,10,11)
y = linspace(0,15,16)
(X,Y) = meshgrid(x,y)
u = 5*X
v = 5*Y
q = plt.quiver(X,Y,u,v,angles='xy',scale=1000,color='r')
p = plt.quiverkey(q,1,16.5,50,"50 m/s",coordinates='data',color='r')
xl = plt.xlabel("x (km)")
yl = plt.ylabel("y (km)")
plt.show()

283
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: 2 boyutta quiver ile Akışkanlar Mekaniği


kaynak kuyu denemesi
import numpy as np
import matplotlib.pyplot as plt
import math

x, y = np.meshgrid(np.linspace(0, 6,12, endpoint = True),


np.linspace(0, 6, 12, endpoint = True) )

strength_source = 6 # kaynağın gğcü


x_source, y_source = 2.0, 2.0 # kaynağın konumu

# Hız alanının hessolannası


u= strength_source/(2*math.pi) * (x-x_source)/((x-x_source)**2 + (y-
y_source)**2)
v= strength_source/(2*math.pi) * (y-y_source)/((x-x_source)**2 + (y-
y_source)**2)

plt.axes([0, 0, 1, 1])
plt.quiver(x, y, u, v, alpha=.6)

plt.show()

284
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

OLDU BAŞARI

285
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

quiver deki alpha=1 oklar koyu

quiver deki alpha=0.6 oklar biraz silik

286
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

quiver deki alpha=0.1 oklar silik alpha azalınca silikleşiyor

plt.axes([0, 0, 1, 1]) idi


plt.axes([0.1, 0, 1, 1]) de x ‘e 0.1 diyince eksen cetveli gözüktü

287
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

BAŞARI ALKIŞ
import numpy as np
import matplotlib.pyplot as plt
import math

x, y = np.meshgrid(np.linspace(0, 6,12, endpoint = True),


np.linspace(0, 6, 12, endpoint = True) )
strength_source = 6 # kaynağın gücü
x_source, y_source = 2.0, 2.0 # kaynağın konumu
# Hız alanının hesaplanması
u= strength_source/(2*math.pi) * (x-x_source)/((x-x_source)**2 + (y-
y_source)**2)
v= strength_source/(2*math.pi) * (y-y_source)/((x-x_source)**2 + (y-
y_source)**2)

plt.axes([0.1, 0.1, 1, 1])


plt.quiver(x, y, u, v, alpha=1)
plt.show()

plt.axes([0.1, 0.1, 1, 1]) de y ‘ye de 0.1 diyince diğer eksen cetveli de gözüktü

288
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

BAŞARDIK MÜKEMMELE YAKLAŞDIK '2 Boyutta


Akışkanlar Mekaniği Hız Vektör Alanı' Kaynak
Axis tanımını çıkardım eksen cetvellerini x y sınızlarından yazıyor zaten
title( ) ile de başlık ekledim

import numpy as np
import matplotlib.pyplot as plt
import math

# Vektörlerin çizileceği noktaların koordinatlarının tanımı


x, y = np.meshgrid(np.linspace(0, 6,12, endpoint = True),
np.linspace(0, 6, 12, endpoint = True) )

# Kaynak/source tanımı
strength_source = 6 # source strength
x_source, y_source = 2.0, 2.0 # location of the source

# Hız Vektör Alanı tanımı


u= strength_source/(2*math.pi) * (x-x_source)/((x-x_source)**2 + (y-
y_source)**2)
v= strength_source/(2*math.pi) * (y-y_source)/((x-x_source)**2 + (y-
y_source)**2)

# Çizim
plt.title('2 Boyutta Akışkanlar Mekaniği Hız Vektör Alanı')
plt.quiver(x, y, u, v, units='width')
plt.show()

289
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

290
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA : Matplotlib pyplot 3 Boyutlu Vektör Alanı


Görselleştirmesi Meshgrid ve quiver ile
As of matplotlib 1.4.x, quiver can now plot in 3d.

from mpl_toolkits.mplot3d import axes3d


import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

x, y, z = np.meshgrid(np.arange(-0.8, 1, 0.2),
np.arange(-0.8, 1, 0.2),
np.arange(-0.8, 1, 0.8))

# Vektör Alanı Tanımı


u = np.sin(np.pi * x) * np.cos(np.pi * y) * np.cos(np.pi * z)
v = -np.cos(np.pi * x) * np.sin(np.pi * y) * np.cos(np.pi * z)
w = (np.sqrt(2.0 / 3.0) * np.cos(np.pi * x) * np.cos(np.pi * y) *
np.sin(np.pi * z))

ax.quiver(x, y, z, u, v, w, length=0.1)

plt.show()

OLDU ÇOK GÜZEL

291
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

3D meshgrid in x , y, z koordinatlarındaki nokta aralıkları/noktaları


np.linspace
np.linspace
np.linspace ile de tanımlanabilirdi.

burada np.arrange ile tanımlanmış

292
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA : Matplotlib pyplot Meshgrid ve quiver ile


3 Boyutlu Vektör Alanı Görselleştirmesi
Vektör alanı fonksiyonlarını biraz sadeleştirdim
Meshgrid ‘in arrange ‘lerle tanımlanan sınırlarını değiştirdim ve z aralığını

from mpl_toolkits.mplot3d import axes3d


import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

x, y, z = np.meshgrid(np.arange(0, 2, 0.2),
np.arange(0, 2, 0.2),
np.arange(0, 2, 0.6))

# Vektör Alanı Tanımı


u = 2 * x * np.cos(np.pi * y) * np.cos(np.pi * z)
v = 3 * x * np.sin(np.pi * y) * np.cos(np.pi * z)
w = x**2 * np.sin(np.pi * z)

ax.quiver(x, y, z, u, v, w, length=0.1)

plt.show()

hem 3 boyutlu bir yüzey çizilse


hem de bu yüzeyin üzerinde bir vektör alanı tanımlansa

293
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

294
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot Vektör Alanını


sadeleşdirdim ve Renk verdim
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

x, y, z = np.meshgrid(np.arange(0, 2, 0.2),
np.arange(0, 2, 0.2),
np.arange(0, 2, 0.6))

# Vektör Alanı Tanımı


u=2*x*y
v = 2 * x**2
w = x**2 * np.sin(np.pi * z)

ax.quiver(x, y, z, u, v, w, color='r', length=0.1)

plt.show()

edgecolor='k'

295
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

296
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot 3 Boyutta


numpy.meshgrid( )
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

x, y, z = np.meshgrid(np.arange(0, 2, 0.2),
np.arange(0, 2, 0.2),
np.arange(0, 2, 0.2))
# Vektör Alanı Tanımı
u=1
v=1
w=1

ax.quiver(x, y, z, u, v, w, color='r', length=0.1)


plt.show()

297
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

………………….

Noktalarla gösrtermeyi denedim 3 boyutlu meshgrid i


Bu alttaki plot u 3 boyutta çizemedi 3 boyutta noktaları bu komutla çizemedi

plt.plot(x, y, z, marker='.', color='k', linestyle='none')


…………………….

Birim vektörlerle gösterdim.

……………………………………….

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,


linewidth=0, antialiased=False) ile olabilir.

298
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

# Vektör Alanı Tanımı biraz daha sade


u=2*x*y
v = 2 * x**2
w = x**2

299
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot 3 Boyutta


numpy.meshgrid( ) linspace ile
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

x, y, z = np.meshgrid(np.linspace(0, 6, 30, endpoint = True),


np.linspace(0, 6, 30, endpoint = True),
np.linspace(0, 6, 30, endpoint = True))
# Vektör Alanı Tanımı
u=1
v=1
w=1

# 3 boyutta tanımlanan noktadaki vektör oklarını görüntülüyor


ax.quiver(x, y, z, u, v, w, color='r', length=0.1)
plt.show()

300
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

(OLDU HELAL BANA SABAHIN 4.30 UNDA KALKIP BİRSÜRÜ 3D UYGULAMA VE


NOT DÜZENLEME YAPIP SABAH 6.30 DA DA BUNU YAPDIM) Bu notu çalışma
sıraaında kendim için almıştım, ama nasıl bi ryoğunlaşma çalışma ile başarı
geliyor gençlere örnek olabikeceği için silmedim)

301
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

linspace de 30 idi 12 aralığa bölünce


np.linspace(0, 6, 12, endpoint = True),

302
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot Vektör Alanı Tanımı


sabit sayı ekledim
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

x, y, z = np.meshgrid(np.arange(0, 2, 0.2),
np.arange(0, 2, 0.2),
np.arange(0, 2, 0.6))

# Vektör Alanı Tanımı


u = 0.6 + 2 * x * y
v = 0.6 + 2 * x**2
w = 0.6 + x**2

ax.quiver(x, y, z, u, v, w, color='r', length=0.1)


plt.show()

303
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

304
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot Z aralığı da eşit 0.2


yapdım
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

# arange(0, 2, 0.2) ilk eleman 0 noktası, 0.2 er artımlarla 2 ye kadar noktalar


oluştur demek
# ilk eleman 0 olduğu için 2 de nokta tanımı yok
x, y, z = np.meshgrid(np.arange(0, 2, 0.2),
np.arange(0, 2, 0.2),
np.arange(0, 2, 0.2))

# Vektör Alanı Tanımı


u = 0.6 + 2 * x * y
v = 0.6 + 2 * x**2
w = 0.6 + x**2

ax.quiver(x, y, z, u, v, w, color='r', length=0.1)


plt.show()

305
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Not:
np.arange(0, 2, 0.2) ) ilk eleman 0 noktası, 0.2 er artımlarla 2 ye kadar noktalar
oluştur demek
# ilk eleman 0 olduğu için 2 de nokta tanımı yok

306
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Açıklama
Alttaki İlk örnekte u,v,w vektör alanını sabit sayılar ile tanımladık. x y z
içeren fonksiyonlar kullanmadık.İkinci örnekte x y x içeren basit fonksiyonlar
kullandık.
numpy.mesgrid() ile vektör alanının noktalarının koordinatlarını
oluştururken bir ekseni eşit aralıklara bölen Python un np.linspace() ini ikinci
örnekte de np.arange() kullandık. Böylece aynı işi yapan iki python metodunu
da göstermiş olduk.
Python matplotlib de Vektör Alanının okları quiver ile çiziliyor. Aynı
komut Matlab da quiver3 şeklinde.

307
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot 3 Boyutta


numpy.meshgrid( ) linspace ve quiver ile 3 Boyutlu
Vektör alanı çizdirmek
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

# 3 Boyutlu eksen takımının çizilmesi


fig = plt.figure()
eksenler = fig.gca(projection='3d')

# 3 Boyutta Grid noktaları oluşturmak, 3D vektör alanının vektörleri bu


noktalarda çizilecek
# linspace(0,6,12) demek 0 dan başla 6 ya kadar 12 ye böl demek
x, y, z = np.meshgrid(np.linspace(0, 6,12, endpoint = True),
np.linspace(0, 6, 12, endpoint = True),
np.linspace(0, 6, 12, endpoint = True))

# Vektör Alanı Tanımı


u=1
v=1
w=1

# 3 boyutta tanımlanan noktadaki vektör oklarını görüntülemek


eksenler.quiver(x, y, z, u, v, w, color='r', length=0.1)
plt.show()

308
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Programı Python IDLE de yazıp çalıştırdıktan sonra

u,v,w vektör alanı çeşitli fonksiyonlar ile birçok vektör alanı uygulamasında
kullanılabilir.
Bu vektör alanı tanımlamalarında np.sin( ) np.cos( ), np.sqrt( ) kullanılabiliyor.

309
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: arange() ile noktaları tanımlıyalım ve


Vektör alanına u=x v=y w=z diyelim

from mpl_toolkits.mplot3d import axes3d


import matplotlib.pyplot as plt
import numpy as np

# 3 Boyutlu eksen takımının çizilmesi


fig = plt.figure()
eksenler = fig.gca(projection='3d')

# 3 Boyutta Grid noktaları oluşturmak, 3D vektör alanının vektörleri bu


noktalarda çizilecek
# arange(0, 7, 1) ilk eleman 0 noktası, 1 er artımlarla 7 eleman oluştur demek
# ilk eleman 0 olduğu için 7nci eleman 6 noktası
x, y, z = np.meshgrid(np.arange(0, 7, 1),
np.arange(0, 7, 1),
np.arange(0, 7, 1))

# Vektör Alanı Tanımı


u=x
v=y
w=z

# 3 boyutta tanımlanan noktadaki vektör oklarını görüntülemek


eksenler.quiver(x, y, z, u, v, w, color='r', length=0.2)
plt.show()

310
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Programı Python IDLE de yazıp çalıştırdıktan sonra

311
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Aynı uygulamada Quiver ok tanımında length=0.1 iken

312
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Matlab’da 3D Vektör Alanı Görselleştirmesi


quiver3 fonksiyonu 2D için ise quiver

Bu Matlab de
Program satırları benziyor ama farklı

[x, y, z] = meshgrid([-1 0 1]);


u = x + cos(4*x) + 3;
v = sin(4*x) - sin(2*y);
w = -z;

quiver3(x, y, z, u, v, w);
axis([-1.5 1.5 -1.5 1.5 -1.5 1.5]);
view(-30, 60);

313
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: 3D Vektör alanı quiver ile Fluid


Mechanics Akışkanlar Mekaniğindeki Kaynak Kuyu
İlginç bir uygulama deneyelim Akışkanlar mekaniğindeki streamplot a
uygulanan u v w hız vektör alanını buraya uygulayalım. Başardık.

KAYNAK TANIMI
strength_source yani Kaynağın Gücü pozitif ise örneğin +9 kaynak,
negatif ise kuyu -9

Kaynak + kuyu yu birlikte aynı grafikde göstermek istersek de


Kaynağın u v sini ayrı fonksiyonlarla oluşturuyoruz u1 v1
Kuyunun u ve v sini ayrı fonksiyonlarla oluşturuyoruz u2 v2
Sonra u=u1 + u2 v=v1+v2 olarak toplayıp
Akış çizdiriyorsak Streamplot da
streamplot(x, y, z, u, v, w, )
ok alanı çizdiriyorsak da
eksenler.quiver(x, y, z, u, v, w, color='r', length=0.1) de
bu toplam u v leri yazıyoruz.

Bu kadar net.

314
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

import math

strength_source = 6.0 # kaynağın gücü


x_source, y_source = -1.0, 0.0 # kaynağın kon6mu

# Hız vektör alanının hesaplaması


u= strength_source/(2*math.pi) * (X-x_source)/((X-x_source)**2 + (Y-
y_source)**2)
v= strength_source/(2*math.pi) * (Y-y_source)/((X-x_source)**2 + (Y-
y_source)**2)

315
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Deneyelim:
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
import math

# 3 Boyutlu eksen takımının çizilmesi


fig = plt.figure()
eksenler = fig.gca(projection='3d')

# 3 Boyutta Grid noktaları oluşturmak, 3D vektör alanının vektörleri bu


noktalarda çizilecek
# linspace(0,6,12) demek 0 dan başla 6 ya kadar 12 ye böl demek
x, y, z = np.meshgrid(np.linspace(0, 6,12, endpoint = True),
np.linspace(0, 6, 12, endpoint = True),
np.linspace(0, 6, 12, endpoint = True))

# Vektör Alanı Tanımı


strength_source = 6.0 # Kaynağın Gücü
x_source, y_source = -1.0, 0.0 # Kaynağın Yeri

# Mesh Grid üzerinde Hız Alanı nın hesaplanması


u= strength_source/(2*math.pi) * (x-x_source)/((x-x_source)**2 + (y-
y_source)**2)
v= strength_source/(2*math.pi) * (y-y_source)/((x-x_source)**2 + (y-
y_source)**2)
w=0

# 3 boyutta tanımlanan noktadaki vektör oklarını görüntülemek


eksenler.quiver(x, y, z, u, v, w, color='r', length=0.1)
plt.show()

316
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

w 0 diyerek 2 boyuttaki fonksiyonu 3 boyuta taşıdık.


Silindirik çıkacak sonuç şimdilik
OLDU

Aralığı arttıralım 12 den 24 e çıkaralım ki akış tam gözüksün


Veya okların boyutunu büyütelim

x, y, z = np.meshgrid(np.linspace(0, 6,24, endpoint = True),


np.linspace(0, 6, 24, endpoint = True),
np.linspace(0, 6, 24, endpoint = True))

aralığı arttırdık daha fazla ok olacak

317
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

İşte mühendislik bu, detayları şekillendirmek

318
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Bir de aralık aynı 12 de iken ok büyüklüğünü attırmayı deneyelim.


Çünkü bu halde de küçük oklar tam gözükmüyor. Oldu ama tam gözükmüyor
küçük oldukları için
Source kaynağın şiddetini arttırınca oklar büyüyor
strength_source = 16.0 6 idi 16 yaptık
quiver length=0.2 yaptık 0.1 idi

319
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Görünüm açısını değiştirelim 90 derece ile tam tepeden


bakalım:
axis.view_init(90, 0)

eksenler. view_init(90, 0) satırını ekledim kod a

from mpl_toolkits.mplot3d import axes3d


import matplotlib.pyplot as plt
import numpy as np
import math

# 3 Boyutlu eksen takımının çizilmesi


fig = plt.figure()
eksenler = fig.gca(projection='3d')

# 3 Boyutta Grid noktaları oluşturmak, 3D vektör alanının vektörleri bu


noktalarda çizilecek
# linspace(0,6,12) demek 0 dan başla 6 ya kadar 12 ye böl demek
x, y, z = np.meshgrid(np.linspace(0, 6,12, endpoint = True),
np.linspace(0, 6, 12, endpoint = True),
np.linspace(0, 6, 12, endpoint = True))

# Vektör Alanı Tanımı


strength_source = 16.0 # Kaynağın Gücü
x_source, y_source = -1.0, 0.0 # Kaynağın yeri

# compute the velocity field on the mesh grid


u= strength_source/(2*math.pi) * (x-x_source)/((x-x_source)**2 + (y-
y_source)**2)
v= strength_source/(2*math.pi) * (y-y_source)/((x-x_source)**2 + (y-
y_source)**2)
w=0

320
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

# 3 boyutta tanımlanan noktadaki vektör oklarını görüntülemek


eksenler.quiver(x, y, z, u, v, w, color='r', length=0.1)
# Görünüm açısına 90 derece diyip tam yukardan bakdık şekile
eksenler. view_init(90, 0)
plt.show()

321
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Source kaynak koordinatları düşünülmeli


Kaynağın koordinatları Linspace e yazılan rakamlarla tanımlanan meshgrid
koordinatlarına uygun olmalı
Tanımlanan koordinatların dışında kalmamalı

x_source, y_source = -1.0, 0.0 dı


x_source, y_source = 2.0, 2.0 yaptık

quiver length 0.1 iken

322
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

quiver length 0.2 iken

323
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Görünüm açısını da değiştirelim biraz daha yan ve aşağıdan


açıyla bakalım
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
import math

# 3 Boyutlu eksen takımının çizilmesi


fig = plt.figure()
eksenler = fig.gca(projection='3d')

# 3 Boyutta Grid noktaları oluşturmak, 3D vektör alanının vektörleri bu


noktalarda çizilecek
# linspace(0,6,12) demek 0 dan başla 6 ya kadar 12 ye böl demek
x, y, z = np.meshgrid(np.linspace(0, 6,12, endpoint = True),
np.linspace(0, 6, 12, endpoint = True),
np.linspace(0, 6, 12, endpoint = True))

# Vektör Alanı Tanımı


strength_source = 16.0 # Kaynağın Gücü
x_source, y_source = 2.0, 2.0 # Kaynağın Yeri

# mesh grid üzerindeki hız alanının hesaplanması


u= strength_source/(2*math.pi) * (x-x_source)/((x-x_source)**2 + (y-
y_source)**2)
v= strength_source/(2*math.pi) * (y-y_source)/((x-x_source)**2 + (y-
y_source)**2)
w=0

# 3 boyutta tanımlanan noktadaki vektör oklarını görüntülemek


eksenler.quiver(x, y, z, u, v, w, color='r', length=0.2)
eksenler. view_init(45, 0)
plt.show()

324
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

mause çizimin üstünde basılı tutulup hareket ettirilerek görünüm açısı


değiştirilebiliyor! İlginç bir özellik
quiver length 0.2 iken

325
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

quiver length 0.1 iken

326
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

ÇİZİME SEMBOL EKLEMEK: quiverkey()

pypolt.quiverkey()çizimin kenarına sembol eklemek

quiverkey(Q, X, Y, U, label, **kw)

X, Y: konum
U: uzunluk
label: yazı, etiket

327
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pyplot.quiverkey() çizime sembol


eklemek
import matplotlib.pyplot as plt
import numpy as np
from numpy import ma

X, Y = np.meshgrid(np.arange(0, 2 * np.pi, .2), np.arange(0, 2 * np.pi, .2))


U = np.cos(X)
V = np.sin(Y)
plt.figure()
plt.title('Okların büyüklüğü genişliğe göredir')
Q = plt.quiver(X, Y, U, V, units='width')
qk = plt.quiverkey(Q, 0.9, 0.9, 2, r'$2 \frac{m}{s}$', labelpos='E',
coordinates='figure')
plt.show()

328
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Quiverkey in olduğu satırı çıkardığımızda aynen çiziyor


Sadece sağ üst köşedeki quiverkey ile tanımlanan bir iki harfi çizmiyor.
Bu quiverkey çizimin bir kenarına birşeyler yazmaya yarıyor.

qk = plt.quiverkey(Q, 0.9, 0.9, 2, r'$2 \frac{m}{s}$', labelpos='E',


coordinates='figure')

329
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA quiverkey( ) koordinatları


import matplotlib.pyplot as plt
import numpy as np

X = np.arange(-10, 10, 1)
Y = np.arange(-10, 10, 1)
U, V = np.meshgrid(X, Y)

fig, ax = plt.subplots()
q = ax.quiver(X, Y, U, V)
ax.quiverkey(q, X=0.3, Y=1.1, U=10,
label='Quiver key, length = 10', labelpos='E')

plt.show()

330
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Quiverkey de X i arttırdım 0.6 yapdım. Yazı sağa gitti.


ax.quiverkey(q, X=0.6, Y=1.1, U=10,
label='Quiver key, length = 10', labelpos='E')

quiverkey( ) deki koordinat sistemi

331
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

ax.quiverkey(q, X=0.3, Y=1.0, U=10, ) y=1.0 tam çizimin üst sınırı çizgisi

ax.quiverkey(q, X=0.3, Y=-0.1, ) y=-0.1 çizimin altı

332
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.9. FONKSİYONLA 3 Boyutlu Sürekli YÜZEY


ÇİZİMİ plot_surface(x, y, f(x,y))
.plot_surface(x, y, z) z= f(x,y) z x ve y ‘nin fonksiyonu,
3D yüzey fonksiyonu
.plot_surface(x, y, f(x,y))

Mathplot .plot_surface
Surface plots
Axes3D.plot_surface(X, Y, Z, *args, **kwargs)
3 boyutlu Yüzey Çizimi oluşturur.

Değişken Tanımı
X, Y, Z 2 Boyutlu Dizi ler halinde Veri Değerleri (2D arrays)
rstride Dizi satır adımı( row stride) (adım büyüklüğü), defaults to 10
cstride Dizi Sütun adımı( column stride) (adım büyüklüğü), defaults to 10
color Yüzey yolları(patches) için Renk
cmap Yüzey yolları(patches) için Renk Haritası(colormap)
facecolors Bireysel yollar için yüz renkleri
norm Harita değerlerini renklere Normalileştirme hali
vmin Haritadaki minimum değer
vmax Haritadaki maksimum değer
shade Yüz renklerinin gölgeli olup olmayacağı
Other Poly3DCollection da geçen değişkenler

333
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

3D BAŞLANGICI : 3 Boyutlu Eksen Takımını çizmek


ax=plt.axes(projection='3d')
Programın başındaki bu satırları sadece yazıp çalıştırırsanız, asıl 3 boyutlu
fonksiyon çiziminin veya vektörel alanının çizileceği 3 Boyutlu eksen takımı
çiziliyor.
İlk 3 satır python a gerekli kodülleri yüklüyor. 1nci satırdaki axes3d 3
boyutta vektör çizebilmemizi sağlıyor.
Kırmızı ile ve büyük olarak yazdığım (projection='3d') ise 3 boyutlu eksen
takımını çiziyor.
Bu çizilen eksenlerin görüntülenebilmesi için programın sonundaki
plt.show() satırını da yazmamız lazım.
Şimdi önce sırf bu kısmı çalıştıralım ve eksen takımını görelim:

from mpl_toolkits.mplot3d import axes3d


import matplotlib.pyplot as plt
import numpy as np

# 3 Boyutlu eksen takımının çizilmesi


fig = plt.figure()
eksenler = fig.gca(projection='3d')
plt.show()

Python ‘un kod yazılıp çalıştırıldığı IDLE(Integrated Development and


Learning Environment) penceresinde programı/kodu yazıp
Run menüsünden Run modüle ile çalıştırıyoruz.

334
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Vektör alanı henüz tanımlanmamış 3 boyutlu eksen takımımız gözüktü.


Şimdi 3 Boyutta vektör alanı çizdiren örneklerimize geçelim.

335
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: 3D BAŞLANGICI : 3 Boyutlu eksen takımını


çizmek ax=plt.axes(projection='3d')
from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(projection='3d')

plt.show()

336
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Görünüm açısını kod ile değiştirmek


axis.view_init(a, b) a ve b açıları

Yatay düzlemle yapdığı açı a, yukardan bakış açısı / the elevation angle
yatay düzlemde x ekseninden yana olan açı da b , yandan bakış açısı / azimuthal
angle

Görünüm açısını mause ile sol tuşa basılı çizilmiş


halde değiştirmek..

337
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot PLOT_SURFACE


import numpy
from matplotlib import pyplot
from mpl_toolkits.mplot3d.axes3d import Axes3D

fig = pyplot.figure(figsize=(12, 9))


axis = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='3d')

x = numpy.linspace(0.0, 1.0)
y = numpy.linspace(0.0, 1.0)

X, Y = numpy.meshgrid(x, y)
# x, y are vectors
# X, Y are 2d arrays

Zyüzeyi = numpy.sin(numpy.pi*X*Y)**2 * numpy.cos(2.0*numpy.pi*Y)**2

# Zyüzeyi ile TANIMLANAN Fonksiyon ÇİZİLECEK


axis.plot_surface(X, Y, Zyüzeyi)

# Eksenlerin etiketlerini(labels) belirliyoruz X Y ve Z olarak.


axis.set_xlabel(r'$X$')
axis.set_ylabel(r'$Y$')
axis.set_zlabel(r'$Z$')
pyplot.show()

338
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

339
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Matplotlib’de RENK HARİTALARI CM(COLORMAPS)


cmap=cm.
from matplotlib import cm ile yükleniyor
cmap=plt.cm.jet ile tanımlanıyor

340
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

341
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot axis.plot_surface() ve


colorbar (orijinal deneme fonksiyonu ile)
colormap Matplotlib’in cm modülü’nü import ediyor dahil ediyor
stride değişkenleri grid ‘in görünümün değiştiriyor

import numpy
from matplotlib import pyplot
from mpl_toolkits.mplot3d.axes3d import Axes3D
from matplotlib import cm

fig = pyplot.figure(figsize=(12, 9))


axis = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='3d')

x = numpy.linspace(0.0, 1.0)
y = numpy.linspace(0.0, 1.0)

X, Y = numpy.meshgrid(x, y)
# x, y vektördür
# X, Y iki boyutlu dizilerdir.

Zyüzeyi = numpy.sin(numpy.pi*X*Y)**2 * numpy.cos(2.0*numpy.pi*Y)**2

p = axis.plot_surface(X, Y, Zyüzeyi, rstride=1, cstride=2, cmap =


cm.coolwarm)
axis.set_xlabel(r'$X$')
axis.set_ylabel(r'$Y$')
axis.set_zlabel(r'$Z$')
fig.colorbar(p, shrink=0.5);
pyplot.show()

342
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

343
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Değişik Bir fonksiyonla GÜZEL SONUÇ


import numpy
from matplotlib import pyplot
from mpl_toolkits.mplot3d.axes3d import Axes3D

from matplotlib import cm

fig = pyplot.figure(figsize=(12, 9))


axis = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='3d')

x = numpy.linspace(0.0, 1.0)
y = numpy.linspace(0.0, 1.0)

X, Y = numpy.meshgrid(x, y)
# x, y are vectors
# X, Y are 2d arrays

yüzey = numpy.sin(numpy.pi*X*Y)**2 * numpy.sin(2.0*numpy.pi*Y**2)

p = axis.plot_surface(X, Y, yüzey, rstride=1, cstride=2, cmap = cm.coolwarm)


axis.set_xlabel(r'$x$')
axis.set_ylabel(r'$y$')
axis.set_zlabel(r'$\phi$')
fig.colorbar(p, shrink=0.5);
pyplot.show()

344
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

yüzey2 = numpy.sin(numpy.pi*X*Y)**6 * numpy.sin(2.0*numpy.pi*Y**2)

uzaysalyüzey3 = numpy.sin(numpy.pi*X*Y)**6 *
numpy.sin(2.0*numpy.pi*Y**6)

345
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

“uzaysalyüzey3” olarak adlandırdım bu 3D 3 boyutlu yüzeyi

Uzaysalyüzey6 = numpy.sin(numpy.pi*X*Y**2)**6 *
numpy.sin(2.0*numpy.pi*Y**6)

346
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Colorbar shring=1 yaptım 0.5 idi


fig.colorbar(p, shrink=1);

347
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot axis.plot_surface()


import numpy
from matplotlib import pyplot
from mpl_toolkits.mplot3d.axes3d import Axes3D

from matplotlib import cm

fig = pyplot.figure(figsize=(12, 9))


axis = fig.add_axes([0.1, 0.1, 1.0, 1.0], projection='3d')

x = numpy.linspace(-1.0, 1.0)
y = numpy.linspace(-1.0, 1.0)

X, Y = numpy.meshgrid(x, y)
# x, y are vectors
# X, Y are 2d arrays

fiyüzeyi = numpy.sqrt(1-(X**2)+((Y**2)/4))

p = axis.plot_surface(X, Y, fiyüzeyi, rstride=1, cstride=2, cmap = cm.coolwarm)


axis.set_xlabel(r'$x$')
axis.set_ylabel(r'$y$')
axis.set_zlabel(r'$\phi$')
fig.colorbar(p, shrink=0.5);
pyplot.show()

348
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

fiyüzeyi = numpy.sqrt(1-(X**2)+(Y**2))

349
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot ELLIPSOID YÜZEYİ


axis.plot_surface()

BURDAN Z yi çekdim

z=numpy.sqrt(1-((x**2)+(y**2))) a=b=c=1 durumunda küre olur

import numpy
from matplotlib import pyplot
from mpl_toolkits.mplot3d.axes3d import Axes3D

from matplotlib import cm

fig = pyplot.figure(figsize=(12, 9))


axis = fig.add_axes([0.1, 0.1,0.8 ,0.8], projection='3d')

x = numpy.linspace(0.0, 1.0)
y = numpy.linspace(0.0, 1.0)

X, Y = numpy.meshgrid(x, y)
# x, y are vectors
# X, Y are 2d arrays

fiyüzeyi = numpy.sqrt(2-((X**2)+(Y**2)))

p = axis.plot_surface(X, Y, fiyüzeyi, rstride=1, cstride=2, cmap = cm.coolwarm)


axis.set_xlabel(r'$x$')
axis.set_ylabel(r'$y$')
axis.set_zlabel(r'$z$')
fig.colorbar(p, shrink=0.5);
pyplot.show()

350
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

351
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot plot_surface()


from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
# PLOT SURFACE İN İÇİNDEKİ 3NCÜ DEĞER ÖNCEDEN TANIMLANAN ÇİZİLECEK
FONKSİYON, Altta Z ile gösterilen.
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet,
linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)

ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

fig.colorbar(surf, shrink=0.5, aspect=5)

plt.show()

352
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

353
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot MATPLOT


PLOT_SURFACE
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

u = np.linspace(0, 2 * np.pi, 100)


v = np.linspace(0, np.pi, 100)

x = 10 * np.outer(np.cos(u), np.sin(v))
y = 10 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))
# altta color da g dedik green yeşil red kırmızı. b blue, y yellow, m magenda
ax.plot_surface(x, y, z, rstride=4, cstride=4, color='g')

plt.show()

354
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

355
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot MATPLOT


PLOT_SURFACE
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
xlen = len(X)
Y = np.arange(-5, 5, 0.25)
ylen = len(Y)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

# İki renkli olmasını burada belirliyor. y yellow sarı, r de red kırmızı


colortuple = ('y', 'r')
colors = np.empty(X.shape, dtype=str)
for y in range(ylen):
for x in range(xlen):
colors[x, y] = colortuple[(x + y) % len(colortuple)]

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, facecolors=colors,


linewidth=0, antialiased=False)

ax.set_zlim3d(-1, 1)
ax.w_zaxis.set_major_locator(LinearLocator(6))

plt.show()

356
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

357
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot PLOT_SURFACE ve


contour ile izdüşümlerin çizilmesi
Önce izdüşümsüz test şeklini çizilim.
3 İzdüşümü çizen Contour ile yazılan 3 satır burada yok.

from mpl_toolkits.mplot3d import axes3d


import matplotlib.pyplot as plt
from matplotlib import cm

fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.02)
ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3)

# Burada X Y Z eksen etiketleri ve eksen başlangıç bitiş sayıları belirleniyor


ax.set_xlabel('X')
ax.set_xlim(-60, 60)
ax.set_ylabel('Y')
ax.set_ylim(-60, 60)
ax.set_zlabel('Z')
ax.set_zlim(-100, 100)

plt.show()

358
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

359
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:Şimdi contour ile izdüşümü çizen satırları


ekleyip izdüşümleri çizelim.
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm

fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)

# İzdüşümler contour ile çiziliyor


ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3)
cset = ax.contour(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='x', offset=-60, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='y', offset=60, cmap=cm.coolwarm)

# Burada X Y Z eksen etiketleri ve eksen başlangıç bitiş sayıları belirleniyor


ax.set_xlabel('X')
ax.set_xlim(-60, 60)
ax.set_ylabel('Y')
ax.set_ylim(-60, 60)
ax.set_zlabel('Z')
ax.set_zlim(-100, 100)

plt.show()

360
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

361
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot PLOT_SURFACE ve


contourf
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm

fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)

#Öncekinde izdüşümler contour ile çizilmişti burada contourf ile çizidi


ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3)
cset = ax.contourf(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm)
cset = ax.contourf(X, Y, Z, zdir='x', offset=-60, cmap=cm.coolwarm)
cset = ax.contourf(X, Y, Z, zdir='y', offset=60, cmap=cm.coolwarm)

ax.set_xlabel('X')
ax.set_xlim(-60, 60)
ax.set_ylabel('Y')
ax.set_ylim(-60, 60)
ax.set_zlabel('Z')
ax.set_zlim(-100, 100)

plt.show()

362
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

363
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot plot_surface


import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# Fonksiyonun tanımı
def altıkambur(x):
return ((4 - 2.1*x[0]**2 + x[0]**4 / 3.) * x[0]**2 + x[0] * x[1]
+ (-4 + 4*x[1]**2) * x[1] **2)

# Grid oluşturmak
x = np.linspace(-2, 2)
y = np.linspace(-1, 1)
xg, yg = np.meshgrid(x, y)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
surf = ax.plot_surface(xg, yg, altıkambur([xg, yg]), rstride=1, cstride=1,
cmap=plt.cm.jet, linewidth=0, antialiased=False)

ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('f(x, y)')
ax.set_title('6 kamburlu Devesırtı Fonksiyonu')

plt.show()

364
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

365
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot plot_trisurf( ) ile


üçgensel bölünmüş 3D yüzey çizimi EYER
Üçgenleme(Triangulation) : Yüzeyi üçgenlere bölünmüş olarak gösteriyor.

from mpl_toolkits.mplot3d import Axes3D


from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np

s_açılar = 36 # Açı sayısı


s_yarıçaplar = 10 # Yarıçap sayısı

# Çap dizisi
# r=0 çapını içermez, iki kere işlenen nokta oluşumunu önlemek için
yarıçaplar = np.linspace(0.125, 1.0, s_yarıçaplar)

# Açı dizisi
açılar = np.linspace(0, 2*np.pi, s_açılar, endpoint=False)

# Tüm açıların her çap için tekrarlanması(repeat)


açılar = np.repeat(açılar[..., np.newaxis], s_yarıçaplar, axis=1)

# polar (yarıçaplar, angles)koordinatları kartezyen(cartesian) (x, y)


koordinatlarına dönüştürür
# (0, 0) burada ekleniyor. (x, y) düzleminde ki kere işlenen nokta yok.
x = np.append(0, (yarıçaplar*np.cos(açılar)).flatten())
y = np.append(0, (yarıçaplar*np.sin(açılar)).flatten())

# Yüzeyin çizimi
z = np.sin(-x*y)

fig = plt.figure()
ax = fig.gca(projection='3d')

366
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

# cmap colarmap renk haritasında ocean ‘ı kullandık


ax.plot_trisurf(x, y, z, cmap=cm.ocean, linewidth=0.2)
plt.show()

367
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA : Matplotlib pyplot contour3D( ) ile 3D


COUNTER
from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
# cm color map in import edilmesi
from matplotlib import cm

def f(x, y):


return np.sin(np.sqrt(x ** 2 + y ** 2))

x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)

fig = plt.figure()
ax = plt.axes(projection='3d')
# cm.jet renk paletinin kullanılabilmesi için başta cm (colar map)‘in import
# edilmesi lazım
ax.contour3D(X, Y, Z, 50, cmap=cm.jet)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')

plt.show()

368
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

369
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot 3D GÖRÜNÜM AÇISINI


DEĞİŞTİRMEK
from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
# cm color map in import edilmesi
from matplotlib import cm

def f(x, y):


return np.sin(np.sqrt(x ** 2 + y ** 2))

x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)

fig = plt.figure()
ax = plt.axes(projection='3d')
# cm.jet renk paletinin kullanılabilmesi için başta cm ‘in import edilmesi
# lazım
ax.contour3D(X, Y, Z, 50, cmap=cm.jet)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')

#Bu alttaki satır ile ax.view_init() ile görünüm açısını değiştirdik.


ax.view_init(60, 35)

plt.show()

azimut: İstikamet açısı

370
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

ax.view_init(60, 35) ile görünüm açısını değiştirmek

371
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot GÖRÜNÜM AÇISINI


DEĞİŞTİRMEK
BU MÜTHİŞ BİRŞEY (tkinter da yazılıp menüye bu seçenek eklenebilir)

FONKSİYONUN GRAFİĞİNE FARKLI BİR AÇIDAN BAKIŞ

import numpy
from matplotlib import pyplot
from mpl_toolkits.mplot3d.axes3d import Axes3D
# cm color map in import edilmesi
from matplotlib import cm

fig = pyplot.figure(figsize=(12, 9))


axis = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='3d')

x = numpy.linspace(0.0, 1.0)
y = numpy.linspace(0.0, 1.0)

X, Y = numpy.meshgrid(x, y)
# x, y are vectors
# X, Y are 2d arrays

yüzey = numpy.sin(numpy.pi*X*Y)**2 * numpy.sin(2.0*numpy.pi*Y**2)

p = axis.plot_surface(X, Y, yüzey, rstride=1, cstride=2, cmap = cm.coolwarm)


axis.set_xlabel(r'$x$')
axis.set_ylabel(r'$y$')
axis.set_zlabel(r'$\phi$')
fig.colorbar(p, shrink=0.5);

axis.view_init(60, 35)
pyplot.show()

372
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

axis.view_init(60, 35) EKLEDİM BÖYLE OLDU


(ax. view_init(60, 35) da ise çalışmadı, ad uyumlu olacak)

BÖYLE İDİ

373
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Görünüm açısını değiştirmek axis.view_init(a, b) a


ve b açıları
Yatay düzlemle yapdığı açı a, yukardan bakış açısı / the elevation angle

yatay düzlemde x ekseninden yana olan açı da b , yandan bakış açısı /


azimuthal angle

axis.view_init(a, b) a=60 b=0 axis.view_init(60, 0)

374
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

45,0 axis.view_init(45, 0)

45,90 axis.view_init(45, 90)

375
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib pyplot Sıfırdan Küre Çizimi


from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np

# Eşit rakam (9,9) yazınca çok daha düzgün ,orantılı çiziyor


fig = plt.figure(figsize=(9, 9))
axis = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='3d')

# Kutupsal(polar) koordinatlarda r yarıçapı , teta açısı, fi açısı ile


N = 20
# pi kadar yani 180 derece yarım çember döndürüyor
theta = np.linspace(0, np.pi, N)
# 2 pi kadar yani 360 derece çember döndürüyor
phi = np.linspace(0, 2*np.pi, 2*N)

th, ph = np.meshgrid(theta,phi)
# R = ones(size(th))
# R(theta,phi) yüzeyi olmalı

x = 3*np.sin(th) *np.cos(ph)
y = 3*np.sin(th) *np.sin(ph)
z = 3*np.cos(th)
surf = axis.plot_surface(x, y, z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False)

plt.show()

376
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

377
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib.pyplot Colormap


cmap=plt.cm.hot
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X ** 2 + Y ** 2)
Z = np.sin(R)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.hot)
ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.cm.hot)
ax.set_zlim(-2, 2)

plt.show()

378
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib Pylab Colormap


cmap=pl.cm.hot
import numpy as np
import pylab as pl
import math as mt

from mpl_toolkits.mplot3d import Axes3D

fig = pl.figure()
ax = Axes3D(fig)

X = np.arange(-2*mt.pi, 2*mt.pi, 0.25)


Y = np.arange(-2*mt.pi, 2*mt.pi, 0.25)

X, Y = np.meshgrid(X, Y)
R = np.sqrt(X ** 2 + Y ** 2)
Z = np.exp(-0.25 * R) * np.cos(2 * R)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=pl.cm.hot)


ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=pl.cm.hot)
ax.set_zlim(-2, 2)

pl.show()

iki ayrı şekil çiziyor


aynı cmap ı colormap i cmap=pl.cm.hot her iki şekile de uyguluyor

burada fig = pl.figure() olarak tanımlandığı için


cmap=pl.cm.hot

379
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=pl.cm.hot)


satırını silince

380
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA : Matplotlib Pylab Colormap cm.jet i


uygulayalım
import numpy as np
import pylab as pl
import math as mt

from mpl_toolkits.mplot3d import Axes3D

fig = pl.figure()
ax = Axes3D(fig)

X = np.arange(-2*mt.pi, 2*mt.pi, 0.25)


Y = np.arange(-2*mt.pi, 2*mt.pi, 0.25)

X, Y = np.meshgrid(X, Y)
R = np.sqrt(X ** 2 + Y ** 2)
Z = np.exp(-0.25 * R) * np.cos(R)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=pl.cm.jet)


ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=pl.cm.jet)
ax.set_zlim(-2, 2)

pl.show()

381
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

382
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib Pylab Colormap


cmap=pl.cm.Reds
import numpy as np
import pylab as pl
import math as mt

from mpl_toolkits.mplot3d import Axes3D

fig = pl.figure()
ax = Axes3D(fig)

X = np.arange(-2*mt.pi, 2*mt.pi, 0.25)


Y = np.arange(-2*mt.pi, 2*mt.pi, 0.25)

X, Y = np.meshgrid(X, Y)

R = np.sqrt(X ** 2 + Y ** 2)
Z = np.cos(R)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=pl.cm.Reds)


ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=pl.cm.Reds)
ax.set_zlim(-2, 2)

pl.show()

383
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

384
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

R = np.sqrt(X ** 2 + Y ** 2)
Z = 0.5*np.cos(R)

385
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.10. Fonksiyonla 3 Boyutlu


TELKAFES(Wireframe) YÜZEY ÇİZİMİ
plot_wireframe( )
UYGULAMA: Matplotlib pyplot plot_wireframe( ) ile 3D
WIREFRAME 3D TELKAFES ÇİZİMİ
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)

# Telkafes( wireframe) Çizimi


ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10, color='red')
plt.show()

386
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

ax.plot_wireframe(X, Y, Z, rstride=2, cstride=2, color='red') yapınca

387
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: plot_wireframe( ) z fonksiyonu cosinüs


from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

def f(x, y):


return np.cos(np.sqrt(x ** 2 + y ** 2))

x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)

fig = plt.figure()
ax = plt.axes(projection='3d')

ax.plot_wireframe(X, Y, Z, color='red')
ax.set_title('Telkafes(wireframe)');

plt.show()

388
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

389
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: plot_wireframe( ) z fonksiyonu np.sqrt(x


** 2 + y ** 2)
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

def f(x, y):


return np.sqrt(x ** 2 + y ** 2)

x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)

X, Y = np.meshgrid(x, y)
Z = f(X, Y)

fig = plt.figure()
ax = plt.axes(projection='3d')

ax.plot_wireframe(X, Y, Z, color='red')
ax.set_title('Telkafes(wireframe)');

plt.show()

390
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

391
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.11. MATPLOTLIB PYPLOT 3D EĞRİ


ÇİZİMİ
UYGULAMA:MATPLOTLIB PYPLOT 3D EĞRİ ÇİZİMİ
.plot(x, y, z)
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label='Parametrik Eğri', color='red')
ax.legend()

plt.show()

392
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

393
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pyplot 3 Boyutlu YAY EĞRİSİ ÇİZİMİ


import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)

# r ye sabit sayı atayınca 3 boyutlu yay çizimi oldu


r=6
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label='Parametril Eğri', color='red')
ax.legend()

plt.show()

394
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

395
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pyplot 3 Boyutlu Yay Eğrisi Çizimi


import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D

fig = plt.figure(figsize=(12, 9))


axis = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='3d')
t = numpy.linspace(0.0, 10.0, 500)
x = numpy.cos(2.0*numpy.pi*t)
y = numpy.sin(2.0*numpy.pi*t)
z = 0.1*t

axis.plot(x, y, z, color='red')
axis.set_xlabel(r'$x$')
axis.set_ylabel(r'$y$')
axis.set_zlabel(r'$z$')

plt.show()

396
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: 3 boyutlu doğru çizimi denemesi


import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
z = np.linspace(0, 6, 100)
x=z
y=z
ax.plot(x, y, z, label='3 Boyutlu Doğru', color='red' )
ax.legend()

plt.show()

397
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.12. Bir Pencerede iki Grafik Çizdirmek


UYGULAMA : BİR PENCEREDE İKİ GRAFİK
Alt Çizimler( subplots)

import matplotlib.pyplot as plt


from mpl_toolkits.mplot3d.axes3d import Axes3D, get_test_data
from matplotlib import cm
import numpy as np

# set up a figure twice as wide as it is tall


fig = plt.figure(figsize=plt.figaspect(0.5))

#############################
# Birinci Alt Çizim(Subplot)
# Birinci çizimin eksenlerinin oluşturulması
ax = fig.add_subplot(1, 2, 1, projection='3d')

# 3 Boyutlu Yüzey Çizimi Solda görünecek


x = np.linspace(0.0, 1.0)
y = np.linspace(0.0, 1.0)

X, Y = np.meshgrid(x, y)
# x, y are vectors
# X, Y are 2d arrays

yüzey = np.sin(np.pi*X*Y)**2 * np.sin(2.0*np.pi*Y**2)


surf = ax.plot_surface(X, Y, yüzey, rstride=1, cstride=1,
cmap=cm.coolwarm, linewidth=0, antialiased=False)

ax.set_xlabel(r'$x$')
ax.set_ylabel(r'$y$')
ax.set_zlabel(r'$\phi$')
ax.set_zlim(-1.01, 1.01)
fig.colorbar(surf, shrink=0.5, aspect=10)

398
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

#################################
# İkinci Alt Çizim(Subplot) 3 Boyutlu Telkafes Çizimi. Sağda Görünecek
# İkinci çizimin eksenlerinin oluşturulması
ax = fig.add_subplot(1, 2, 2, projection='3d')

# Telkafes çizimi
X, Y, Z = get_test_data(0.05)
ax.plot_wireframe(X, Y, Z, rstride=2, cstride=2, color='red')

plt.show()

ÇALIŞTI

399
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

subplot(m,n,p) Birden fazla çizimi aynı pencerede


göstermek:
birden fazla çizimi figürü aynı pencerede göstermek için
Pencereyi m x n grid e bölüyor.

subplot(m,n,p) veya subplot(mnp) çeklinde

“Şunu şöyle anlatsanıza” (bu çözümleme anındaki notumdu. Silmedim. Çünkü


böyle net anlastılmıyor.
ilk rakam satır sayısı
ikinci rakam sütun sayısı
en sağdaki rakam, 3ncü rakam da grafiğin çerçevede nereye yerleştirileceğini
belirliyor.

Örneğin pencere 1 satır 2 sütun a bölünmüş olsun


subplot(1,2,1) veya subplot(1,2,2) olabilir
3ncü rakam pencere bölümünün numarasını belirtiyor
Pencerelerin Numaralanışı:

1 ise solda 2 ise sağda


subplot(121) SOLDA
subplot(122) SAĞDA

örneğin pencere 1 satır 3 sütuna bölünmüş olsun


Pencerelerin Numaralanışı:

subplot(1,3,1) çizim sola yerleştirilecek demek


subplot(1,3,2) çizim ortaya yerleştirilecek demek
subplot(1,3,3) çizim sağa yerleştirilecek demek

400
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.13. PASTA(PIE) ,ÇUBUK( BAR, 3D BAR),


HİSTOGRAM hist( ) GRAFİKLERİ
(GRAPHS)
Histogram sürekli değişkenlerin sıklık dağılımını(frequency distribution)
gösterir. The histogram sayısal datayı temsil eder Oysa Çubuk Grafiği(the bar
graph) sınıflandırıcı veriyi( categorical data) temsil eder. Histogram bir tür
Diagram’ dır. Dikdörtgen çubuklar grafikte birbirine bitişiktir. Histogram sürekli
veriyi( contious data) temsil eder. Çubuklar arsında boşluk yoktur. i.

UYGULAMA: Histogram Grafiği, 2 Türlü


import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0)
mu = 200
sigma = 25
x = np.random.normal(mu, sigma, size=100)

fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(8, 4))

ax0.hist(x, 20, normed=1, histtype='stepfilled', facecolor='g', alpha=0.75)


ax0.set_title('stepfilled')

# aralıklı çubuklardan oluşan ssğdaki 2nci histogramı oluşturur.


bins = [100, 150, 180, 195, 205, 220, 250, 300]
ax1.hist(x, bins, normed=1, histtype='bar', rwidth=0.8)
ax1.set_title('unequal bins')
fig.tight_layout()
plt.show()

401
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

402
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: 3 Boyutlu ÇUBUK GRAFİĞİ (3D BAR


GRAPH) . bar()
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# ['y', 'b', 'g', 'r'] renkler yellow,blue,green,red sarı,mavi,yeşil,kırmızı
for c, z in zip(['y', 'b', 'g', 'r'], [30, 20, 10, 0]):
xs = np.arange(10)
ys = np.random.rand(10)

# Tek bir renk veya dizi kullanılabilir.


# Her setin İlk çubuğu( bar ) cyan renginde . cs[0] = 'c' ile
cs = [c] * len(xs)
cs[0] = 'c'
ax.bar(xs, ys, zs=z, zdir='y', color=cs, alpha=0.8)

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()

403
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

404
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PYPLOT plt.bar() plt.table


import numpy as np
import matplotlib.pyplot as plt

data = [[ 66386, 174296, 75131, 577908, 32015],


[ 58230, 381139, 78045, 99308, 160454],
[ 89135, 80552, 152558, 497981, 603535],
[ 78415, 81858, 150656, 193263, 69638],
[139361, 331509, 343164, 781380, 52269]]

columns = ('Don', 'Rüzgar', 'Sel', 'Deprem','Dolu')


rows = ['%d Yıl' % x for x in (100, 50, 20, 10, 5)]

values = np.arange(0, 2500, 500)


value_increment = 1000

# Renkkre için pastel gölgeler oluşturmak


colors = plt.cm.BuPu(np.linspace(0, 0.5, len(rows)))
n_rows = len(data)

index = np.arange(len(columns)) + 0.3


bar_width = 0.4

# yığın çubuk grafikleri için (stacked bar chart.) kaydırmalar


y_offset = np.zeros(len(columns))

# Çubukları ve yazı etiketlerini oluşturmak


cell_text = []
for row in range(n_rows):
plt.bar(index, data[row], bar_width, bottom=y_offset, color=colors[row])
y_offset = y_offset + data[row]
cell_text.append(['%1.1f' % (x / 1000.0) for x in y_offset])

405
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

# Son değeri en üstte göstermek için renkleri ve etiketleri ters çevirmek


colors = colors[::-1]
cell_text.reverse()

# Grafiğe Eksenlerin altına Tablo eklemek


the_table = plt.table(cellText=cell_text,
rowLabels=rows,
rowColours=colors,
colLabels=columns,
loc='bottom')

# Alttaki Tablonun çerçevesinin boyutlarını belirlemek


plt.subplots_adjust(left=0.2, bottom=0.2)
plt.ylabel("Kayıp ${0}'s".format(value_increment))
plt.yticks(values * value_increment, ['%d' % val for val in values])
plt.xticks([])
plt.title('Felaketlerden Dolayı Kayıplar')
plt.show()

406
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib Gantt chart


.broken_barh([(40, 50)], (30, 9), )

import matplotlib.pyplot as plt

# "gnt" Figürünü tanımlamak


fig, gnt = plt.subplots()

# Y ve X Eksen Limitlerini belirlemek


gnt.set_ylim(0, 60)
gnt.set_xlim(0, 180)

# Y ve X Eksen Etiketlerini belirlemek


gnt.set_xlabel('Proje Günleri')
gnt.set_ylabel('Yapılacak İşler')

# Y Eksenine işaretlerin konulması (Setting ticks on y-axis)


gnt.set_yticks([15, 25, 35, 45])
# Y eksenindeki işaretletin Etiketlenmesi (Labelling tickes of y-axis)
gnt.set_yticklabels(['1nci İş', '2nci İş', '3ncü İş', '4ncü İş'])
gnt.grid(True)

gnt.broken_barh([(90, 30), (150, 10)], (40, 9),facecolors ='tab:blue')


gnt.broken_barh([(40, 50)], (30, 9), facecolors =('tab:orange'))

#(10, 50) 10 dan başlıyor 50 uzunlukta demek


gnt.broken_barh([(10, 50), (100, 20), (130, 40)], (20, 9),facecolors =('tab:red'))

#(10, 160) 10 dan başlıyor 160 uzunlukta demek


gnt.broken_barh([(10, 160)], (10, 9),facecolors =('tab:green'))

plt.show()
plt.savefig("gantt1.png")

407
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

408
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib Pasta Grafiği(Pie chart)


* Dilim etiketleri
* 100deleri otomatik etiketlemek
* Bir dilimi "explode" ile dışarı kaydırnak
* Gölge düşürmek
* Ayarlanan başlangıç açısı

import matplotlib.pyplot as plt

# Dilimler(slices) saat dönüşünün tersi yönündedir(counter-clockwise).


labels = 'DENİZ', 'KUŞLAR', 'ÇİÇEKLER AĞAÇLAR,' , 'GÖKYÜZÜ', 'GÜZELLİKLER'
sizes = [25, 10, 20, 25, 20]

# Sadece ikinci dilimi merkezden dışarı doğru gösterir ("explode" i.e. 'Hogs')
explode = (0, 0.1, 0, 0,0)

fig1, ax1 = plt.subplots()


# Startangle başlangıç açısı normalde(default) 0 dır.Burada 90
ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
shadow=True, startangle=90)
# Eşit Görüntü Oranı( aspect ratio) ,pasta daire olarak çizilmesi içindeki
# Ama bu yazılmasa da yine daire olarak çiziyor
ax1.axis('equal')

plt.show()

409
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

410
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Simit Grafiği (Nested Pie Charts)


import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()

size = 0.3
değerler = np.array([[60., 32.], [37., 40.], [29., 10.]])

cmap = plt.get_cmap("tab20c")
dışrenkler = cmap(np.arange(3)*4)
içrenkler = cmap(np.array([1, 2, 5, 6, 9, 10]))

ax.pie(değerler.sum(axis=1), radius=1, colors=dışrenkler,


wedgeprops=dict(width=size, edgecolor='w'))

ax.pie(değerler.flatten(), radius=1-size, colors=içrenkler,


wedgeprops=dict(width=size, edgecolor='w'))

ax.set(aspect="equal", title='`ax.pie` ile Pasta Grafiği')


plt.show()

411
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

412
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pasta+ Çubuk Grafiği


import matplotlib.pyplot as plt
from matplotlib.patches import ConnectionPatch
import numpy as np
import math

# style choice
plt.style.use('fivethirtyeight')

# make figure and assign axis objects


fig = plt.figure(figsize=(15,7.5))
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)

# Pasta Grafiği Değerleri


ratios = [.16, .66, .18]
labels = ['Onaylayan', 'Onaylamayan', 'Kararsız']
explode=[0.1,0,0]
# rotate so that first wedge is split by the x-axis
angle = -180*ratios[0]
ax1.pie(ratios, autopct='%1.1f%%', startangle=angle,
labels=labels,explode=explode )

# Çubuk Grafiği Değerleri


xpos = 0
bottom = 0
ratios = [.23, .64, .07, .06]
width = .2
colors = [[.1,.3,.5], [.1,.3,.3], [.1,.3,.7], [.1,.3,.9] ]

413
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

for j in range(len(ratios)):
height = ratios[j]
ax2.bar(xpos, height, width, bottom=bottom, color=colors[j])
ypos = bottom + ax2.patches[j].get_height()/2
bottom += height
ax2.text(xpos,ypos, "%d%%" % (ax2.patches[j].get_height()*100),
ha='center')

plt.title('Onaylayanların Yaşı')
plt.legend(('50-65', '65 Üstü', '35-49', '35 Altı'))
plt.axis('off')
plt.xlim(-2.5*width, 2.5*width)

# ConnectionPatch kullanımı iki çizim araaında çizgikee çizmek için


# ilk grup için kenar ucu (wedge) verisinin alınması
theta1, theta2 = ax1.patches[0].theta1, ax1.patches[0].theta2
center, r = ax1.patches[0].center, ax1.patches[0].r
bar_height = sum([item.get_height() for item in ax2.patches])
x = r*np.cos(math.pi/180*theta2)+center[0]
y = np.sin(math.pi/180*theta2)+center[1]
con = ConnectionPatch(xyA=(-width/2,bar_height), xyB=(x,y),
coordsA="data", coordsB="data", axesA=ax2, axesB=ax1)

con.set_color([0,0,0])
con.set_linewidth(4)
ax2.add_artist(con)

x = r*np.cos(math.pi/180*theta1)+center[0]
y = np.sin(math.pi/180*theta1)+center[1]
con = ConnectionPatch(xyA=(-width/2,0), xyB=(x,y), coordsA="data",
coordsB="data", axesA=ax2, axesB=ax1)

414
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

con.set_color([0,0,0])
ax2.add_artist(con)
con.set_linewidth(4)

plt.show()

415
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Simit Pasta(Pia) Grafiği


import matplotlib.pyplot as plt
# Çizdirilecek Veriler
etiketler = ['Python', 'R', 'Ruby', 'Java']
sayılar = [504, 337, 415, 280]
cins_etiketler = ['Erkek', 'Kadın', 'Erkek',' Kadın', 'Erkek', 'Kadın', 'Erkek',
'Kadın']
cins_sayılar = [315,189,125,212,270,145,190,90]
renkler = ['#ff6666', '#ffcc99', '#99ff99', '#66b3ff']
cins_renkler= ['#c2c2f0','#ffb3e6', '#c2c2f0','#ffb3e6', '#c2c2f0','#ffb3e6',
'#c2c2f0','#ffb3e6']
plt.pie(sayılar, labels=etiketler, colors=renkler , startangle=90,frame=True)
# labeldistance=0.7 demezsek içteki erkek kadın yazısın dış çemberin üzerine
yazıyor
plt.pie(cins_sayılar, labels=cins_etiketler, colors=cins_renkler, radius=0.75,
startangle=90, labeldistance=0.7)
centre_circle = plt.Circle((0,0),0.5,color='black', fc='white',linewidth=0)
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
plt.axis('equal')
plt.tight_layout()
plt.show()

416
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Simit Grafiği(Donut Chart)


import matplotlib.pyplot as plt

labels = 'Elma', 'Muz', 'Kiraz', 'Kayısı', 'Armut', 'Şeftali', 'Üzüm'


sizes = [32, 20, 15, 10, 10, 8, 5]

daire = plt.Circle((0, 0), 0.7, color='white')

d = plt.pie(sizes, labels=labels, autopct='%1.1f%%',


startangle=90, labeldistance=1.05)
plt.axis('equal')
plt.gca().add_artist(daire)
plt.show()

417
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Simit Grafiği


import matplotlib.pyplot as plt

Etiketler = ['Sebze', 'Meyva']


Boyutlar = [300, 200]
Etiketler_sebzemeyve= ['Patates', 'Domates', 'Soğan','Biber', 'Şeftali',
'Kayısı', 'Kiraz', 'Kavun']
Boyutlar_sebzemeyve = [100,70, 70, 60, 70, 60, 50, 20]
renkler = ['#FFB600', '#09A0DA']
renkler_sebzemeyve = ['#FFCE53', '#FFDA7E', '#FFE9B2','#FFFFCE',
'#30B7EA', '#56C7F2','#7FD6F7', '#B3E7FB']

bigger = plt.pie(Boyutlar, labels=Etiketler, colors=renkler,


startangle=90, frame=True)
smaller = plt.pie(Boyutlar_sebzemeyve, labels=Etiketler_sebzemeyve,
colors=renkler_sebzemeyve, radius=0.7,
startangle=90, labeldistance=0.7)
centre_circle = plt.Circle((0, 0), 0.4, color='white', linewidth=0)
fig = plt.gcf()
fig.gca().add_artist(centre_circle)

plt.axis('equal')
plt.tight_layout()

plt.show()

418
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

419
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Area Plot plt.stackplot( , , , , ,


colors=['r','g','k','r'])
import matplotlib.pyplot as plt

günler = [6,10,22,23,29]
haftalar = [4,2,3,7,6]

okuma=[4,5,7,6,6]
yürüyüş = [6,5,7,9,10]
yazma=[3,4,6,7,8]
yemek = [6,6,7,8,8]

plt.plot([],[],color='y', label='Okuma', linewidth=6)


plt.plot([],[],color='g', label='Yürüyüş', linewidth=6)
plt.plot([],[],color='b', label='cricket', linewidth=6)
plt.plot([],[],color='r', label='tennis', linewidth=6)
plt.stackplot(günler,okuma,yürüyüş,yazma,yemek, colors=['y','g','b','r'])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Yığın(Stack)Grafiği')
plt.legend()

plt.show()

420
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

421
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Area plot plt.stackplot( , , , , ,


colors=['r','g','k','r'])
import matplotlib.pyplot as plt

günler = [1,2,3,4,5]
uyku =[7,8,6,11,7]
yemek = [2,3,4,3,2]
iş =[7,8,7,2,2]
yürüyüş = [8,5,7,8,13]

plt.plot([],[],color='g', label='Uyku', linewidth=5)


plt.plot([],[],color='c', label='Yemek', linewidth=5)
plt.plot([],[],color='r', label='İş', linewidth=5)
plt.plot([],[],color='b', label='Yürüyüş', linewidth=5)

plt.stackplot(günler,uyku,yemek,iş,yürüyüş, colors=['g','c','r','b'])

plt.xlabel('x')
plt.ylabel('y')

plt.title('Yığın(Stack) Çizimi')

plt.legend()

plt.show()

422
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

423
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Yığın Grafiği(Stack Plot)


import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 1, 2, 3, 5]
y2 = [0, 4, 2, 6, 8]
y3 = [1, 3, 5, 7, 9]

y = np.vstack([y1, y2, y3])

labels = ["Fibonacci ", "Evens", "Odds"]

fig, ax = plt.subplots()
ax.stackplot(x, y1, y2, y3, labels=labels)
ax.legend(loc='upper left')
plt.show()

#Aynısını farklı bir yöntemle çiziyor


fig, ax = plt.subplots()
ax.stackplot(x, y)
plt.show()

424
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

425
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: YIĞIN GRAFİĞİ


import matplotlib.pyplot as plt
import numpy as np

aylar = ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs']


Arkeoloji = [300,200,100,200,100]
Python = [20,60,100,90,30]
YazıtBilim = [100,200,100,100,100]
Enstitü = [100,150,300,200,300]

plt.plot([],[],color='green', label='ARKEOLOJİ', linewidth=5)


plt.plot([],[],color='blue', label='PYTHON', linewidth=5)
plt.plot([],[],color='pink', label='YAZIT BİLİM', linewidth=5)
plt.plot([],[],color='yellow', label='ARAŞTIRMA ENSTİTÜSÜ', linewidth=5)
plt.stackplot(aylar, Arkeoloji, Python,YazıtBilim, Enstitü,
colors=['green','yellow','pink','blue','red'])
plt.xlabel('x')
plt.ylabel('y')
plt.yticks(np.arange(0, 1000, step=100))
plt.title('ÇALIŞMALAR')
plt.legend()
plt.show()

426
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

427
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Kutu Grafiği (Box plot) ax.boxplot()


Bir sayısal dizideki veri dağılımını görmek için istatikçilerin
kullandığı bir grafik türü.
Medyan(ortanca) aritmetik ortalama değil. Seri sıralandığında
ortadaki eleman medyan. 11 elemanlı ise 6. Veri eleman sayısı çift ise iki
medyan var.Örneğin 12 eleman var ise medyan 6. ve 7.
A box plot(whisker plot) bir veri setinin minimumunu, ilk
quartile ‘ı, median’ını, üçüncü quartile ‘ı ve maksimumunu gösterir. .
In a box plot da ill quartile dan üçüncü quartile a kafar kutu(box)
çizikiyor. Dij bir çizgi kutunun oryadına medianı gösteem2k için çizilir.
Whisker ler her bir quartile ‘dan minimum ve maksimuma çizilir.

import matplotlib.pyplot as plt


import numpy as np

np.random.seed(10)
collectn_1 = np.random.normal(100, 10, 200)
collectn_2 = np.random.normal(80, 30, 200)
collectn_3 = np.random.normal(90, 20, 200)
collectn_4 = np.random.normal(70, 25, 200)

## Tek bir listede toplama


data_to_plot = [collectn_1, collectn_2, collectn_3, collectn_4]
fig = plt.figure()

ax = fig.add_axes([0,0,1,1])

bp = ax.boxplot(data_to_plot)
plt.show()
428
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

429
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Kutu Grafiği (Box plot) np.array() ile

import matplotlib.pyplot as plt


import numpy as np

# Verisetinin(Dataset) oluşturulması
data = np.array([1,6,12,9,23,16,10,12])

fig = plt.figure(figsize =(10, 8))

plt.boxplot(data)

# Çizimi Göster komutu


plt.show()

430
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Kutu Grafiği (Box plot) plt.boxplot(data,,


notch ='True', vert = 0)
import matplotlib.pyplot as plt
import numpy as np

# Creating dataset
data = np.array([1,6,12,9,23,16,9,12])

fig = plt.figure(figsize =(10, 7))


# vert = 0 deyince yatay çiziyor, notch ='True' deyince de ortası çentikli çiziyor
plt.boxplot(data,patch_artist = True, notch ='True', vert = 0)

plt.title("Özel Şekil Verilmiş Kutu Çizimi( box plot)")


plt.show()

431
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Matplotlib Violin plot ax.violinplot()

Violin çizimi kutu çizimine( box plot) benzer. Verinin


olaaılık(probability) yoğunluğunu da gösterir. Violin grafiği değişken
dağılımını kıyaslamak için de kullanılır.Violin grafiği kutu grafiğine göre
daha fazla bilgiyi gösteeir.Violin grafiği verinin tüm dağılımını gösterir.
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(10)
collectn_1 = np.random.normal(100, 10, 200)
collectn_2 = np.random.normal(80, 30, 200)
collectn_3 = np.random.normal(90, 20, 200)
collectn_4 = np.random.normal(70, 25, 200)

## combine these different collections into a list


data_to_plot = [collectn_1, collectn_2, collectn_3, collectn_4]

# Create a figure instance


fig = plt.figure()

# Create an axes instance


ax = fig.add_axes([0,0,1,1])

# Violin çiziminin oluşturulması


bp = ax.violinplot(data_to_plot)
plt.show()

432
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

433
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.14. matshow() Matris Gösterimi


matplotlib.pyplot.matshow() fonksiyonu bir diziyi çizim penceresinde
bir mattis olarak göstermek için kullanılır..
Üst sol köşe merkezdir. Satırlar (dizinin ilk boyutu) yatay formda
gösterilir.

434
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: plt.matshow(dizi)
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm

# 2 Boyutlu Dizi (köşegende doğrussl arran değerlee)


dizi = np.diag(range(22))

plt.matshow(dizi, cmap=cm.Reds)
plt.show()

Geriplan rengi değiştirilebilir.

435
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: matshow()
import numpy as np
import matplotlib.pyplot as plt

alphabets = ['A', 'B', 'C', 'D']


random_array = np.random.random((4, 4))

figure = plt.figure()
axes = figure.add_subplot(111)

caxes = axes.matshow(random_array, interpolation ='nearest')


figure.colorbar(caxes)

axes.set_xticklabels(['']+alphabets)
axes.set_yticklabels(['']+alphabets)

plt.show()

Scikit learn de de çalıştı bu komut.

436
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pylab plt.matshow()


from matplotlib.pylab import *

# random matris görüntülüyor


# colormap cm.gray veya cm.Blues cm.Greens de mümkün
matshow(rand(64, 64), fignum=100, cmap=cm.Reds)

show()

437
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.15. 3D Vogel voxels() 3 boyutlu küp


hacim pixeli
UYGULAMA: Matplotlib 3D Vogel ax.voxels()
Voxel bir pikselin 3 boyutlu bir küp birim şeklinde tanımlanması.
Hacim elemanının veya hacim pikselinin kısaltması.

import matplotlib.pyplot as plt


import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

# prepare some coordinates


x, y, z = np.indices((8, 8, 8))

# Küpçükler(cuboids) çizer. Ve aralarını birleştirir


cube1 = (x < 3) & (y < 3) & (z < 3)
cube2 = (x >= 5) & (y >= 5) & (z >= 5)
link = abs(x - y) + abs(y - z) + abs(z - x) <= 2

# Nesneleri bir boolean dizisinde birleştirmek.


voxels = cube1 | cube2 | link

# Her bir nesnenin rengini belirlemek


colors = np.empty(voxels.shape, dtype=object)
colors[link] = 'red'
colors[cube1] = 'blue'
colors[cube2] = 'green'

fig = plt.figure()
ax = fig.gca(projection='3d')
ax.voxels(voxels, facecolors=colors, edgecolor='k')

plt.show()
438
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Python cilt 1 sy37 boolean’a bu operatörün örneği açıklaması

439
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Marplotlib 3D Voxel


import matplotlib.pyplot as plt
import numpy as np

from mpl_toolkits.mplot3d import Axes3D

# koordinatların hazırlanması
x, y, z = np.indices((10, 10, 10))

# Şeffaf cuboidler ve mat cuboidlee çizee


transparent_cubes = (x < 10) & (y < 10) & (z < 10)
opaque_cubes_1 = ( x < 4) & (y == 0 ) & (z == 3)
opaque_cubes_2 = ( x == 5) & (y == 5 ) & (z == 5)

# Nesneleri bir boolean dizisinde birleştirir


voxels1 = transparent_cubes
voxels2 = opaque_cubes_1 | opaque_cubes_2

# nesnelerin rengini belirlemek


colors1 = np.empty(voxels1.shape, dtype=object)
colors1[transparent_cubes] = 'pink'

colors2 = np.empty(voxels2.shape, dtype=object)


colors2[opaque_cubes_1] = 'red'
colors2[opaque_cubes_2] = 'green'

# and plot everything


fig = plt.figure()
ax = fig.gca(projection='3d')
ax.voxels(voxels1, facecolors=colors1, edgecolor='none', alpha=0.4)
ax.voxels(voxels2, facecolors=colors2, edgecolor='none')

plt.show()

440
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

441
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.16. DAĞILIM ÇİZİMİ(SCATTER PLOT)


UYGULAMA: plt.scatter() Machine Learning için bir 2D
Scatter Plot örneği
import numpy as np
import matplotlib.pyplot as plt

# Dağılım Grafiği (Scatterplot) and İlişkiler(Correlations)


# Veri(Data)
x=np.random.randn(100)
y1= x*5 +9
y2= -5*x
y3=np.random.randn(100)

# Çizim(Plot)
plt.rcParams.update({'figure.figsize':(10,8), 'figure.dpi':100})
plt.scatter(x, y1, label=f'y1 Correlation =
{np.round(np.corrcoef(x,y1)[0,1], 2)}')
plt.scatter(x, y2, label=f'y2 Correlation =
{np.round(np.corrcoef(x,y2)[0,1], 2)}')
plt.scatter(x, y3, label=f'y3 Correlation =
{np.round(np.corrcoef(x,y3)[0,1], 2)}')

plt.title('Dağılım Grafiği(Scatterplot) ve İlişkiler(Correlations)')


plt.legend()
plt.show()

442
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

443
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: .scatter() 3D Dağılım Scattering


from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

# Fixing random state for reproducibility


np.random.seed(20000000)

def randrange(n, vmin, vmax):


return (vmax - vmin)*np.random.rand(n) + vmin

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 100

# For each set of style and range settings, plot n random points in the
box
# defined by x in [23, 32], y in [0, 100], z in [zlow, zhigh].
for m, zlow, zhigh in [('o', -50, -25), ('^', -30, -5)]:
xs = randrange(n, 23, 32)
ys = randrange(n, 0, 100)
zs = randrange(n, zlow, zhigh)
ax.scatter(xs, ys, zs, marker=m)

ax.set_xlabel('X Ekseni')
ax.set_ylabel('Y Ekseni')
ax.set_zlabel('Z Ekseni')

plt.show()

444
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

445
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

pyplot.scatter()çizimin içinde sembol ve renk dağılımı


kullanımı
sembol(marker) büyükküğü ve rengi

pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None,


norm=None, vmin=None, vmax=None, alpha=None, linewidths=None,
verts=None, edgecolors=None, hold=None, data=None, **kwargs)

x, y : array_like, shape (n, ) Verinin koordinatları

c: color, Renk
belirrilmekilse ‘b’ yani black siyah

marker kullanılacak sembol örnek: marker= r'$\clubsuit$


cmap : Colormap Renk Haritası

446
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA pyplot.scatter( ) çizimin içinde şekil ve


renk dağılımı kullanımı
import numpy as np
import matplotlib.pyplot as plt

# Gelişgüzel sayılar
np.random.seed(19680801)

N = 60
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)

area = (30 * np.random.rand(N))**2

plt.scatter(x, y, s=area, c=colors, alpha=0.5)


plt.show()

447
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

448
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pyplot.scatter() çizimin içinde


sembol(marker) ve renk dağılımı kullanımı
import matplotlib.pyplot as plt
import numpy as np
import matplotlib

# Gelişigüzel sayılar
np.random.seed(19680801)

x = np.arange(0.0, 60.0, 2.0)


y = x ** 1.3 + np.random.rand(*x.shape) * 30.0
s = np.random.rand(*x.shape) * 800 + 500

plt.scatter(x, y, s, c="g", alpha=0.5, marker=r'$\clubsuit$',


label="Şans")
plt.xlabel("Eserler Makaleler Kitaplar")
plt.ylabel("Altın")
plt.legend(loc=2)
plt.show()

marker=r'$\clubsuit$' 3 yapraklı yonca

449
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

450
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Kümeleme(Clustering) pyplot.scatter()


scipy.cluster.vq.kmeans
import numpy as np
from numpy import array
from numpy import random
from scipy.cluster.vq import vq, kmeans, whiten
import matplotlib.pyplot as plt

features = array([[ 1.9,2.3],


[ 1.5,2.5],
[ 0.8,0.6],
[ 0.4,1.8],
[ 0.1,0.1],
[ 0.2,1.8],
[ 2.0,0.5],
[ 0.3,1.5],
[ 1.0,1.0]])
whitened = whiten(features)
book = np.array((whitened[0],whitened[2]))
print(kmeans(whitened,book))

random.seed((1000,2000))
codes = 3
print(kmeans(whitened,codes))

# a ve b kümelenmelerinde(cluster) 50 verinoktası üretir


pts = 50
a = np.random.multivariate_normal([0, 0], [[4, 1], [1, 4]], size=pts)
b = np.random.multivariate_normal([30, 10],
[[10, 2], [2, 1]],
size=pts)
features = np.concatenate((a, b))
# Netleştirilmiş veri
whitened = whiten(features)

451
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

# Veeide 2 kümelenmeyi(cluster) bulmak


codebook, distortion = kmeans(whitened, 2)
# Netleştirilmiş veriyi ve kırmızı kümelenne(cluster) merkezlerini çizmek
plt.scatter(whitened[:, 0], whitened[:, 1])
plt.scatter(codebook[:, 0], codebook[:, 1], c='r')
plt.show()

import numpy as np ekleyince çalıştı

452
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: plot a linear regression line on a scatter


plot plt.plot(x, y, 'o') m, b = np.polyfit(x, y, 1)
import numpy as np
import matplotlib.pyplot as plt

#Verinin Oluşturulması
x = np.array([1, 3, 5, 6, 7])
y = np.array([ 6, 3, 9, 8, 5 ])

#Dağılım çizimi(scatter plot)


plt.plot(x, y, 'o')

#m = eğim(slope), b=(kesişme(intercept)
m, b = np.polyfit(x, y, 1)
plt.plot(x, m*x + b)
plt.show()

453
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA : pyplot np.polyfit() Polinom eğrisi’ne (


polynomial) Uydurma

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(18)

x = np.linspace(0, 1, 20)
y = np.cos(x) + 0.3*np.random.rand(20)
p = np.poly1d(np.polyfit(x, y, 3))

t = np.linspace(0, 1, 200)
plt.plot(x, y, 'o', t, p(t), '-')
plt.show()

454
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:plot a linear regression line on a scatter


plot in Python b, m = polyfit(x, y, 1)
import numpy as np
from numpy.polynomial.polynomial import polyfit
import matplotlib.pyplot as plt

# Örnek Veri(data)
x = np.arange(10)
y = 5 * x + 10

# polyfit ile fit


b, m = polyfit(x, y, 1)

plt.plot(x, y, '.')
plt.plot(x, b + m * x, '-')
plt.show()

455
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Adlandırılmış Renkler(Named Colors)

456
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Hex Renk Kodları

457
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

458
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

459
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

III.17. ax.annotate() YAZI VE YAZILI


KUTU DİAGRAM OLUŞTURMAK ve
ax.text2d()
Kutu Türleri
circle Daire
darrarrow iki yönlü ok
larrow left arrow sola ok
rarrow right arrow sağa ok
round yuvarlatılmış köşeli dikdörrgen
round4
roundtooth
sawtooth
square dikdörrgen
Örnek: dict(boxstyle="round" )

460
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Yazı Eklemek .annotate( )


import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)

t = np.arange(0.0, 5.0, 0.01)


s = np.cos(2*np.pi*t)
line, = ax.plot(t, s, lw=2)

# Yazıyı yazan kısım. Bu kısım olmasa sadece eğri çizer.


# Ok ucunun koordinatı xy=(2, 1) x=2 y=1
# Yazının başladığı noktanın koordinatı xytext=(3, 1.5) x=3 y=1.5
ax.annotate('Yerel Maksimum', xy=(2, 1), xytext=(3, 1.5),
arrowprops=dict(facecolor='red', shrink=0.05),
)
# y ekseninin limitleri
ax.set_ylim(-2,2)
plt.show()

Bu yazıyı yazan kısım Matplotlib ile çizdiğimiz eğrilere eklenebilir.

461
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Yazıyı yazan kısım olmasa bu şekilde görünecekti

462
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Yazı Eklemek .annotate( )


import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
import numpy as np

fig = plt.figure(1, figsize=(8, 5))


ax = fig.add_subplot(111, autoscale_on=False, xlim=(-1, 5), ylim=(-4, 3))

t = np.arange(0.0, 5.0, 0.01)


s = np.cos(2*np.pi*t)
line, = ax.plot(t, s, lw=3)

ax.annotate('Düz',
xy=(0, 1), xycoords='data',
xytext=(-50, 30), textcoords='offset points',
arrowprops=dict(arrowstyle="->"))

ax.annotate('Yay3,\YarıÇap 0.2',
xy=(0.5, -1), xycoords='data',
xytext=(-80, -60), textcoords='offset points',
arrowprops=dict(arrowstyle="->",
connectionstyle="arc3,rad=.2"))

plt.show()

463
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

464
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Yazı eklemek annotate()


import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
import numpy as np

fig = plt.figure(1, figsize=(8, 5))


ax = fig.add_subplot(111, autoscale_on=False, xlim=(-1, 5), ylim=(-4, 3))

t = np.arange(0.0, 5.0, 0.01)


s = np.cos(2*np.pi*t)
line, = ax.plot(t, s, lw=3)

ax.annotate('angle3,\nangle -90',
xy=(2.5, -1), xycoords='data',
xytext=(-80, -60), textcoords='offset points',
arrowprops=dict(arrowstyle="->",
connectionstyle="angle3,angleA=0,angleB=-90"))

plt.show()

465
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Kutulu Yazı eklemek .annotate()

import matplotlib.pyplot as plt


from matplotlib.patches import Ellipse
import numpy as np

fig = plt.figure(1, figsize=(8, 5))


ax = fig.add_subplot(111, autoscale_on=False, xlim=(-1, 5), ylim=(-4, 3))

t = np.arange(0.0, 5.0, 0.01)


s = np.cos(2*np.pi*t)
line, = ax.plot(t, s, lw=3)

ax.annotate('angle,\nround',
xy=(3., 1), xycoords='data',
xytext=(-60, 30), textcoords='offset points',
bbox=dict(boxstyle="round", fc="0.8"),
arrowprops=dict(arrowstyle="->",
connectionstyle="angle,angleA=0,angleB=90,rad=10"))

ax.annotate('angle,\nround4',
xy=(3.5, -1), xycoords='data',
xytext=(-70, -80), textcoords='offset points',
size=20,
bbox=dict(boxstyle="round4,pad=.5", fc="0.8"),
arrowprops=dict(arrowstyle="->",
connectionstyle="angle,angleA=0,angleB=-
90,rad=10"))

plt.show()

466
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

467
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Kutu içinde Yazı eklemek (Annotate)


import numpy.random
import matplotlib.pyplot as plt

fig = plt.figure(1, figsize=(5,5))


fig.clf()

ax = fig.add_subplot(111)
ax.set_aspect(1)

x1 = -1 + numpy.random.randn(100)
y1 = -1 + numpy.random.randn(100)
x2 = 1. + numpy.random.randn(100)
y2 = 1. + numpy.random.randn(100)

ax.scatter(x1, y1, color="r")


ax.scatter(x2, y2, color="g")

bbox_props = dict(boxstyle="round", fc="w", ec="0.5", alpha=0.9)


ax.text(-2, -2, " A Örneği", ha="center", va="center", size=20,
bbox=bbox_props)
ax.text(2, 2, "B Örneği", ha="center", va="center", size=20,
bbox=bbox_props)

bbox_props = dict(boxstyle="rarrow", fc=(0.8,0.9,0.9), ec="b", lw=2)


t = ax.text(0, 0, "Yönelim", ha="center", va="center", rotation=45,
size=15,
bbox=bbox_props)

bb = t.get_bbox_patch()
bb.set_boxstyle("rarrow", pad=0.6)

468
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)

plt.draw()
plt.show()

bu programda annotate fonksiyonu yok

469
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: ANNOTATE İLE FLOW CHART


import matplotlib.pyplot as plt

plt.figure(figsize=(3,2))
ax=plt.subplot(111)
an1 = ax.annotate("Test 1", xy=(0.5, 0.5), xycoords="data",
va="center", ha="center",
bbox=dict(boxstyle="round", fc="w"))
an2 = ax.annotate("Test 2", xy=(1, 0.5), xycoords=an1,
xytext=(30,0), textcoords="offset points",
va="center", ha="left",
bbox=dict(boxstyle="round", fc="w"),
arrowprops=dict(arrowstyle="->"))
plt.show()

470
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: ANNOTATE İLE FLOW CHART


import matplotlib.pyplot as plt

plt.figure(figsize=(6,6))
ax=plt.axes([0.1, 0.1, 0.6, 0.7])
an1 = ax.annotate("DENEME 1", xy=(0.5, 0.2), xycoords="data",
va="center", ha="center",
bbox=dict(boxstyle="round", fc="w"))

# xytext=(0.5,1.1) y=1.1 idi 1 olan çerçevenin üstü idi dışta yazıyordu düzelttim
an2 = ax.annotate("DENEME 2", xy=(0.5, 0.6), xycoords=an1,
xytext=(0.5,0.9), textcoords=(an1, "axes fraction"),
va="bottom", ha="center",
bbox=dict(boxstyle="round", fc="w"),
arrowprops=dict(arrowstyle="->"))
plt.show()

471
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: ANNOTATE İLE FLOW CHART


import matplotlib.pyplot as plt

plt.figure(figsize=(6,6))
ax=plt.axes([0.1, 0.1, 0.6, 0.7])
an1 = ax.annotate("DENEME 1", xy=(0.5, 0.2), xycoords="data",
va="center", ha="center",
bbox=dict(boxstyle="round", fc="w"))

an2 = ax.annotate("DENEME 2", xy=(0.5, 0.6), xycoords=an1,


xytext=(0.5,0.6), textcoords=(an1, "axes fraction"),
va="bottom", ha="center",
bbox=dict(boxstyle="circle", fc="w"),
arrowprops=dict(arrowstyle="->"))
plt.show()

472
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: ANNOTATE
import matplotlib.pyplot as plt

plt.figure(1, figsize=(6,6))
ax = plt.subplot(111)
ax.text(0.6, 0.6, "DENEME", size=30, va="center", ha="center",
bbox=dict(boxstyle=custom_box_style, alpha=0.2))
plt.show()

KUTU İÇİNDEKİ YAZIYI..FİGSIZE I YAZI KOORNİNATINI 0.6 0.6 yaptık

473
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA : ax.text2D( , , " “) 3 Boyutlu Çizimde


Yazı/Açıklama Kutusu Kullanımı
import numpy
from matplotlib import pyplot
from mpl_toolkits.mplot3d.axes3d import Axes3D
from matplotlib import cm

fig = pyplot.figure(figsize=(12, 9))


axis = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='3d')
x = numpy.linspace(0.0, 1.0)
y = numpy.linspace(0.0, 1.0)
X, Y = numpy.meshgrid(x, y)
# x ve y vektördür
# X, Y iki boyutlu dizidir

yüzey = numpy.sin(numpy.pi*X*Y)**2 * numpy.sin(2.0*numpy.pi*Y**2)


# cmap=pyplot.cm.hot da seçilebilir
p = axis.plot_surface(X, Y, yüzey, rstride=1, cstride=2, cmap = cm.coolwarm)
axis.set_xlabel(r'$x$')
axis.set_ylabel(r'$y$')
axis.set_zlabel(r'$\phi$')
axis.set_zlim(-2, 2)
fig.colorbar(p, shrink=0.5);

# Bu alttaki kalın harfli satırlar ekrana yazı kutusu içinde yazı yazdıran
# satırlardır. İlk axtext2D() de ilk satır ikincisinde ikinci satır yazılıyor.
# Size yazı büyüklüğü 'large' da olabilirdi
ax.text2D(0.05, .93, "3 Boyutlu Çizimde \n",
horizontalalignment='left',
verticalalignment='top',
size='xx-large',
bbox=dict(facecolor='white', alpha=1.0),
transform=pyplot.gca().transAxes)
474
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

ax.text2D(0.05, .87, "Yazı Kutusu Kullanımı",


horizontalalignment='left',
verticalalignment='top',
size='xx-large',
transform=pyplot.gca().transAxes)

plt.show()

Renk değişimini renk tonlaması cmap=plt.cm.hot ile yapılıyor

475
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

MATPLOTLIB.PYPLOT İÇERİĞİ
ÇOK ÇİZİM ÇEŞİDİ VAR ÇOK ZENGİN.
>>> import matplotlib.pyplot
>>> a=dir(matplotlib.pyplot)
>>> print(a)
['Annotation', 'Arrow', 'Artist', 'AutoLocator', 'Axes', 'Button', 'Circle', 'Figure',
'FigureCanvasBase', 'FixedFormatter', 'FixedLocator', 'FormatStrFormatter',
'Formatter', 'FuncFormatter', 'GridSpec', 'IndexLocator', 'Line2D',
'LinearLocator', 'Locator', 'LogFormatter', 'LogFormatterExponent',
'LogFormatterMathtext', 'LogLocator', 'MaxNLocator', 'MultipleLocator',
'Normalize', 'NullFormatter', 'NullLocator', 'PolarAxes', 'Polygon', 'Rectangle',
'ScalarFormatter', 'Slider', 'Subplot', 'SubplotTool', 'Text', 'TickHelper', 'Widget',
'_INSTALL_FIG_OBSERVER', '_IP_REGISTERED', '__builtins__', '__cached__',
'__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__',
'_auto_draw_if_interactive', '_autogen_docstring', '_backend_mod',
'_backend_selection', '_hold_msg', '_imread', '_imsave', '_interactive_bk',
'_pylab_helpers', '_setp', '_setup_pyplot_info_docstrings', '_show',
'_string_to_bool', 'absolute_import', 'acorr', 'angle_spectrum', 'annotate',
'arrow', 'autoscale', 'autumn', 'axes', 'axhline', 'axhspan', 'axis', 'axvline',
'axvspan', 'bar', 'barbs', 'barh', 'bone', 'box', 'boxplot', 'broken_barh', 'cla',
'clabel', 'clf', 'clim', 'close', 'cm', 'cohere', 'colorbar', 'colormaps', 'colors',
'connect', 'contour', 'contourf', 'cool', 'copper', 'csd', 'cycler', 'dedent',
'delaxes', 'deprecated', 'disconnect', 'division', 'docstring', 'draw', 'draw_all',
'draw_if_interactive', 'errorbar', 'eventplot', 'figaspect', 'figimage', 'figlegend',
'fignum_exists', 'figtext', 'figure', 'fill', 'fill_between', 'fill_betweenx', 'findobj',
'flag', 'gca', 'gcf', 'gci', 'get', 'get_backend', 'get_cmap',
'get_current_fig_manager', 'get_figlabels', 'get_fignums',
'get_plot_commands', 'get_scale_docs', 'get_scale_names', 'getp', 'ginput',
'gray', 'grid', 'hexbin', 'hist', 'hist2d', 'hlines', 'hold', 'hot', 'hsv', 'imread',
'imsave', 'imshow', 'inferno', 'install_repl_displayhook', 'interactive', 'ioff', 'ion',

476
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

'is_numlike', 'ishold', 'isinteractive', 'jet', 'legend', 'locator_params', 'loglog',

'magma', 'magnitude_spectrum', 'margins', 'matplotlib', 'matshow',


'minorticks_off', 'minorticks_on', 'mlab', 'new_figure_manager', 'nipy_spectral',
'np', 'over', 'pause', 'pcolor', 'pcolormesh', 'phase_spectrum', 'pie', 'pink',
'plasma', 'plot', 'plot_date', 'plotfile', 'plotting', 'polar', 'print_function',
'prism', 'psd', 'pylab_setup', 'quiver', 'quiverkey', 'rc', 'rcParams',
'rcParamsDefault', 'rc_context', 'rcdefaults', 'register_cmap', 'rgrids', 'savefig',
'sca', 'scatter', 'sci', 'semilogx', 'semilogy', 'set_cmap', 'setp', 'show',
'silent_list', 'six', 'specgram', 'spectral', 'spring', 'spy', 'stackplot', 'stem', 'step',
'streamplot', 'style', 'subplot', 'subplot2grid', 'subplot_tool', 'subplots',
'subplots_adjust', 'summer', 'suptitle', 'switch_backend', 'sys', 'table', 'text',
'thetagrids', 'tick_params', 'ticklabel_format', 'tight_layout', 'title', 'tricontour',
'tricontourf', 'tripcolor', 'triplot', 'twinx', 'twiny', 'types', 'unicode_literals',
'uninstall_repl_displayhook', 'violinplot', 'viridis', 'vlines', 'waitforbuttonpress',
'warnings', 'winter', 'xcorr', 'xkcd', 'xlabel', 'xlim', 'xscale', 'xticks', 'ylabel', 'ylim',
'yscale', 'yticks']

>>>

477
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

MATHPLOTLIB İÇERİĞİ
>>> a=dir(matplotlib)
>>> print(a)
['MutableMapping', 'RcParams', 'URL_REGEX', 'Verbose',
'_DATA_DOC_APPENDIX', '__bibtex__', '__builtins__', '__cached__', '__doc__',
'__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__',
'__version__', '__version__numpy__', '_all_deprecated', '_backports',
'_color_data', '_create_tmp_config_dir', '_decode_filesystem_path',
'_deprecated_ignore_map', '_deprecated_map', '_deprecated_set',
'_error_details_fmt', '_get_cachedir', '_get_config_or_cache_dir',
'_get_configdir', '_get_data_path', '_get_data_path_cached', '_get_home',
'_get_xdg_cache_dir', '_get_xdg_config_dir', '_init_tests', '_is_writable_dir',
'_obsolete_set', '_open_file_or_url', '_preprocess_data', '_python27',
'_python34', '_rc_params_in_file', '_replacer', '_url_lines', '_use_error_msg',
'_version', 'absolute_import', 'cbook', 'checkdep_dvipng',
'checkdep_ghostscript', 'checkdep_inkscape', 'checkdep_pdftops',
'checkdep_ps_distiller', 'checkdep_tex', 'checkdep_usetex', 'checkdep_xmllint',
'colors', 'compare_versions', 'compat', 'contextlib', 'cycler', 'dateutil', 'dedent',
'defaultParams', 'default_test_modules', 'distutils', 'division',
'fontconfig_pattern', 'functools', 'get_backend', 'get_cachedir', 'get_configdir',
'get_data_path', 'get_home', 'get_label', 'get_py2exe_datafiles', 'inspect',
'interactive', 'io', 'is_interactive', 'is_url', 'itertools', 'locale', 'matplotlib_fname',
'mplDeprecation', 'numpy', 'os', 'print_function', 'pyparsing', 'rc', 'rcParams',
'rcParamsDefault', 'rcParamsOrig', 'rc_context', 'rc_file', 'rc_file_defaults',
'rc_params', 'rc_params_from_file', 'rcdefaults', 'rcsetup', 're', 'reload',
'sanitize_sequence', 'six', 'subprocess', 'sys', 'tempfile', 'test',
'tk_window_focus', 'unicode_literals', 'urlopen', 'use', 'validate_backend',
'verbose', 'warnings']

***************************************
478
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

IV. PYTHON PANDAS VERİ BİLİMİ


Pyyhon Veei analiz Kütüphanesi (Python Data Analysis
Library)
Pandas Veri Çerçevesini( Data Frame) i Veri tabanı( Database)
olarak kullanılıyor.

Kolay kullanılır Veri yapıları( data structures) ve veri analizi


araçlarına (data analysis tools) sahiptir.

Tabular Data: Tablo(table) çizelge şeklinde olan Veri


Python’a Panda yı yüklemek
Cmd ‘yi açıp
C:\Users\.........\AppData\Local\Programs\Python\Python36\Scripts\pip
install pandas
İle direkt download edip yükleniyor.

TABLO HALİNDE VERİLERİ BELLİ BİR DÜZENDE YAZDIRMA


Excel tablosu görünümlü Veri tabanı
EXCEL İN AÇDIĞI DOSYA PAYLAŞIM FORMATI OLAN
PYTHON DOSYAYA YAZMA KONUSUNDA ÖNCEDEN ÇALIŞDIĞIM BİLDİĞİM
CSV UZANTILI DOSYALARA DA YAZMAK OKUMAK BU MODÜLÜN KONUSU

Pandas Numpy, Scipy and Matplotlab ile çalışabilen bir Pyyhon


modülüdür. Pandas kelimesi "Python and data analysis" ve "panel data" dan
türetilmiş.

479
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: DİREKT VERİ ÇİZELGESİ(DATAFRAME)


OLUŞTURMAK df = pd.DataFrame() df['ad'] = ['Serpil',
'Yasemin', 'Müjgan'] ve Sütun Eklemek
import pandas as pd
# Boş bir Veritablosu/VeriÇerçevesi(dataframe) oluşturmak
df = pd.DataFrame()

#Veri Tablosunda Kayıt içeren sütun(column) Oluşturmak


df['Ad'] = ['Serpil', 'Yasemin', 'Müjgan']
# Veri Çerçevesini (dataframe) görmek için ekrana yazdırmak
print(df)

df['Yaş'] = [32, 22, 48]


# VeriTablosunu görmek/ View dataframe
print(df)

480
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: assign() ile yeni kolon eklemek


import pandas as pd
# Boş bir veriçerçevesi(dataframe) oluşturmak
Df = pd.DataFrame()

# Sütun(column) oluşturmak
Df['Ad'] = ['Özlem', 'Selin', 'Melisa']

print(Df)
# 'yaş' adında yeni bir kolon atayıp
Df= Df.assign(yaş = [28, 26, 34])
print(Df)

481
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: = FrameAdı.assign(SütunAdı = [ , , ]) ile


SÜTUN (Column) Ekleyerek Yeni Veri Çerçevesi
(DataFrame) Oluşturmak
import pandas as pd
# Boş bir dataframe oluşturmak
Df = pd.DataFrame()

# Sütun(column) oluşturmak
Df['Ad'] = ['Özlem', 'Selin', 'Melisa']

print(Df)
# 'yaş' adında yeni bir kolon atayıp yeni bir DataFrame oluşturmak
# Bu atamayı yaparken önveden oluşturulan Df değişmiyor. Df olduğu gibi
# kalıyor. Eklemeden sonra print(Df) desek yine ilk Df i yazar.
# Bu yüzden yeni oluşan bu DataFrame ‘e yeni bir ad verip yazdırıyoruz.
Da= Df.assign(yaş = [28, 26, 34])
print(Da)

Yeni oluşan datadframe ad vermessek, bu eklenen yaş sütununu yazmaz.İlk


dataframe değişmiyor. Yine ilk datadrame ‘i yazar. Bu işin püf noktası. Önemli
bir püf noktası ve mantığı.

482
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:DİREKT PANDAS ‘DAN VERİ ÇERÇEVESİ(


DATAFRAME) OLUŞTURMAK

import pandas as pd
df = pd.DataFrame({'A': range(1, 5), 'B': range(11, 15)})

print(df)

483
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PANDA CSV dosyasını açmak ve VERİ


ÇERÇEVESİNE(DATAFRAME E)SÜTUN COLUMN
EKLEMEK

import pandas as pd
import numpy as np
# CSV dosyasını açmak
df= pd.read_csv('D:/programlama/ornek.csv')

# Sütun ekkemek, Python listesi.


A=df.assign(YeniSutun = df.age*2)
print(A)

TABLODA GÖSTERMİYORDU
YENİ OLUŞAN TABLOYU BİR A DEĞERİNE ATADIK YAZDI

484
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PANDAS CSV dosyasını açmak ve tabloda


df.assign(YeniSutun = ['4', '6', '12', '34', '43']) yeni
sütun oluşturmak

import pandas as pd
import numpy as np
#CSV dosyasını açmak
df= pd.read_csv('D:/programlama/ornek.csv')

# Yeni bir Sütun ekkemek, Python listesi


DE= df.assign(YeniSutun = ['40', '60', '46', '29', '43'])
print(DE)

BU DA YAZMIYORDU YENİ SÜTUNU


DE DEĞİŞKENİNE ATADIK YAZDI

485
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: assign() Bu durumda iki tablo var df ve A


İLKİ AYNI KALIYOR. SÜTUN KOLON EKLENEN İKİNCİ DATAFRAME
İKİSİNİ ALT ALTA YAZDIRALIM:

import pandas as pd
import numpy as np

# CSV dosyasını açmak


df= pd.read_csv('D:/programlama/ornek.csv')

# add a new column, the Python list.


DE= df.assign(YeniSutun = ['40', '60', '46', '29', '43'])
print(DE)
print(df)

486
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: assign() Sütun eklemek


import pandas as pd
import numpy as np
# CSV dosyasını açmak
df= pd.read_csv('D:/programlama/ornek.csv')

# Python lisesi ile Yeni sütun eklemeyip yeni bir dataframe oluşturduk
DE= df.assign(YeniSutun = ['40', '60', '46', '29', '43'])
df=DE
print(DE)
print(df)

İki DATAFRAME oluşuyor.


İLKİNE OLUŞAN ikinci DE yi atadık
ŞİMDİ İKİ DATAFRAME DE AYNI

487
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: assign() ile DATAFRAME E SÜTUN


EKLEMEK
import pandas as pd
# A ve B iki sütunlu/column Dataframe oluşturuluyor
df = pd.DataFrame({'A': range(1, 5), 'B': range(11, 15)})
print(df)
# C ve D iki sütun/column daha ekleniyor DataFrame e
df = df.assign(C=df['A']**2, D=df.B*2)
print(df)

2 Sütun Ekledik
C KOLONU A NIN KARESİ, D KOLONU B*2
BİR DE MATEMATİKSEL İŞLEM UYGULAYARAK YENİ KOLON
OLUŞTURMA ÖRNEĞİ..HEM ÇÖZÜM HEM DE ÖTESİ

488
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: assign() ile DATAFRAME E SÜTUN


EKLEMEK
BÖYLE DE AYNI SÜTUN EKLEMESİ YAPILABİLİYOR
import pandas as pd
# A ve B iki sütunlu/column Dataframe oluşturuluyor
df = pd.DataFrame({'A': range(1, 5), 'B': range(11, 15)})
print(df)
# C ve D iki sütun/column daha ekleniyor DataFrame e
# “df DataFrame inin A sütununa Lambda ile tanımlanan
# “fonksiyonu uygulayarak C adlı yeni bir sütun oluştur” demek
df = df.assign(**{'C': df.A.apply(lambda x: x ** 2), 'D': df.B * 2})
print(df)

489
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pd.read_csv(url) PANDAS NUMPY ÇOK


İLGİNÇ BİR WEB SİTESİNDEN BİR CSV Yİ AÇIP OKUDU
İNTERNETDEN BİR CSV DOSYASI ALIP OKUYABİLMESİ VE ÜZERİNDE İŞLEM
YAPABİLMESİ ÇOK İLGİNÇ BU 2000-3000 KİŞİNİN KAYDI DA OLABİLİR. 200-3000
KŞİŞİNİN MAAŞ LİSTESİ VEYA BANKA HESAP KAYDI OLABİLİR.

import pandas as pd
import numpy as np

url = 'https://raw.github.com/pandas-
dev/pandas/master/pandas/tests/data/tips.csv'
tips = pd.read_csv(url)
print(tips.head())

490
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Internetten bir CSV okuyup Sütun Adları


ile Sütun seçmek COLUMN SELECTION

import pandas as pd
import numpy as np

url = 'https://raw.github.com/pandas-
dev/pandas/master/pandas/tests/data/tips.csv'
tips = pd.read_csv(url)
print (tips[['total_bill', 'tip', 'smoker', 'time']].head(5))

Sütun Seçimi DataFrame de Sütun Adları Listesi i İle yapılır.


DataFrame ‘i sütun adları listesi olmadan çağırırsanız tüm sütunları
gösterir.

491
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PANDAS FİLİTRELEME print


(tips[tips['time'] == '………..'].head( ))
import pandas as pd
import numpy as np

url = 'https://raw.github.com/pandas-
dev/pandas/master/pandas/tests/data/tips.csv'
tips = pd.read_csv(url)
print (tips[tips['time'] == 'Dinner'].head(5))

“TİPS İN time sütununda Dinner olanları yaz” dedik.

Hepsinin TİME kısmı DİNNER olduğu için hepsini yazdı..

492
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PANDAS DATA FRAME OLUŞTURMA

import pandas as pd
import numpy as np

frame = pd.DataFrame({'col1': ['A', 'B', np.NaN, 'C', 'D'], 'col2': ['F',


np.NaN, 'G', 'H', 'I']})
print(frame)

493
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Creating a DataFrame by passing a numpy


array, with a datetime index and labeled columns:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

dates = pd.date_range('20130101', periods=6)


print(dates)

df = pd.DataFrame(np.random.randn(6,4), index=dates,
columns=list('ABCD'))
print(df)

494
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Viewing Data: See the top & bottom rows


of the frame
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

dates = pd.date_range('20130101', periods=6)


print(dates)

df = pd.DataFrame(np.random.randn(6,4), index=dates,
columns=list('ABCD'))
print(df.head())
print(df.tail(3))

head üstten 5 satırı yazıyor


tail alttan 3 satırı yazıyor

495
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA : pandas.date_range ve .sort_index(axis=1,


ascending=False)) .sort_values(by='B')) eksene göre
ve küçükden büyüğe doğru dizmek
Eksenlere ve Değere göre sıralama

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

dates = pd.date_range('20180101', periods=6)

df = pd.DataFrame(np.random.randn(6,6), index=dates,
columns=list('ABCDEF'))
print(df.sort_index(axis=0, ascending=False))
print(df.sort_index(axis=1, ascending=False))
print(df.sort_values(by='A'))

496
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

üçüncü de A sütünuna göre diziyor. A sı en küçükden büyüğe doğru

497
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PANDAS SELECTION df[0:3] 0 dan 4 e


kadar 1nci 2nci 3ncü satırlar
Tek bir sütun seçmek.
satırı dilimleyen [] ile seçme

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dates = pd.date_range('20130101', periods=6)

df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))


print(df['A'])
print(df[0:3])
print(df['20130102':'20130104'])

ilkinde A sütununu yazdı


ikincide 0 dan 4 e kadar yani 1nci 2nci 3ncü satırları yazdı
üçte tarihler arasındaki kayıtları satırları yazdı

498
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PANDAS Seçim (Selection)

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

dates = pd.date_range('20130101', periods=6)

df = pd.DataFrame(np.random.randn(6,4), index=dates,
columns=list('ABCD'))
print(df.loc[dates[0]])
print(df.loc[:,['A','B']])
print(df.loc['20130102':'20130104',['A','B']])

499
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PANDAS BOOLEAN INDEXING df[df.A > 0])


, df[df > 0])
Using a single column’s values to select dat

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

dates = pd.date_range('20130101', periods=6)

df = pd.DataFrame(np.random.randn(6,4), index=dates,
columns=list('ABCD'))
print(df[df.A > 0])
print(df[df > 0])

İLKİ A SÜTUNUNDAKİ DEĞERİ 0 DAN BÜYÜK OLAN


KAYITLAR/SATIRLAR
İKİNCİSİ TÜM TABLODA 0 DAN BÜYÜK OLAN DEĞERLER

BU SİTEDE ÇOK DAFA FAZLA NET VE UYGULANDIĞINDA ÇALIŞAN ÖRNEK VAR.


ŞİMDİLİK BU KADAR.

500
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: NUMPY İLE PANDAS DATAFRAME İ


OLUŞTURMAK

import pandas as pd
import numpy as np
#dataframe ‘in oluşturulması
raw_data = {'first_name': ['Nil', 'Molly', 'Tina', 'Arinna', 'Amy'],
'last_name': ['Miller', 'Jacobson', ".", 'Milner', 'Cooze'],
'age': [42, 52, 36, 24, 73],
'preTestScore': [4, 24, 31, ".", "."],
'postTestScore': ["25,000", "94,000", 57, 62, 70]}
df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name',
'age', 'Score1', 'Score2'])
print(df)

501
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: NUMPY İLE OLUŞTURULAN DATAFRAME İ


PANDA İLE CSV OLARAK KAYDETMEK
import pandas as pd
import numpy as np
# VeriÇerçevesi’nin oluşturulması
raw_data = {'first_name': ['Nil', 'Molly', 'Tina', 'Arinna', 'Amy'],
'last_name': ['Miller', 'Jacobson', ".", 'Milner', 'Cooze'],
'age': [43, 52, 36, 24, 73],
'preTestScore': [4, 24, 31, ".", "."],
'postTestScore': ["25,000", "94,000", 57, 62, 70]}
df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age',
'Score1', 'Score2'])
print(df)
# VeeiÇerçevesimi csv olarak kaydetmek
df.to_csv('D:/programlama/ornek.csv')

OLDU BU KADAR DA BASİTMİŞ


ornek.csv dosyasını oluşturup kaydettim

Excel ile açtığımda csv dosyasının görünümü

502
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: CSV DOSYASINI PANDA İLE AÇMAK


import pandas as pd
import numpy as np
# CSV dosyasını açmak
dv= pd.read_csv('D:/Database/IstanbulPaleoArtifacs.csv')
print(dv)

OLDU AÇDIM
Çok alan/sütun olduğu için ilk sütunu ve son sütunu yazdı..
Uzun Dizilerde de bazen böyle yapıyor.

503
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: ! CSV DOSYASINI PANDA İLE BAŞLIKSIZ


AÇMAK
import pandas as pd
# csv yi başlıksız yükkemek
dv = pd.read_csv('D:/Database/IstanbulPaleoArtifacs.csv',
header=None)
print(dv)

Niye en üstte 0 ve 15 yazıyor

504
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pd.date_range ve columns=['A', 'B', 'C',


'D','E', 'L' ] ile Sütun Adı/Başlığı tanımlama
import pandas as pd
import numpy as np
dates = pd.date_range('1/1/2018', periods=6)
df = pd.DataFrame(np.random.randn(6, 6), index=dates, columns=['A', 'B', 'C',
'D','E', 'L' ])
print(df)

505
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Sütunları adları ile seçip ikinci bir tablo


oluşturup yazdırmak
import pandas as pd
import numpy as np
# CSV dosyasını açmak
dv= pd.read_csv('D:/Database/IstanbulPaleoArtifacs.csv')
dv1 = dv[['Adı','Malzemesi']]
print(dv1)

506
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Tablodaki Alan/Sütun Adları/ column


headers
import pandas as pd
import numpy as np
# CSV dosyasını açmak
dv= pd.read_csv('D:/Database/IstanbulPaleoArtifacs.csv')

print(dv.columns)

Uygulama: Tablodaki Sütun adlarını list() ile


yazdırmak
import pandas as pd
import numpy as np
# CSV dosyasını açmak
dv= pd.read_csv('D:/Database/IstanbulPaleoArtifacs.csv')
print(list(dv))

507
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Tablodaki Sütun adlarını list(


.columns.values) ile yazdırmak
import pandas as pd
import numpy as np
# CSV dosyasını açmak
dv= pd.read_csv('D:/Database/IstanbulPaleoArtifacs.csv')
print(list(dv.columns.values))

Uygulama: Tablodaki Sütun adlarını keys ile


yazdırmak
import pandas as pd
import numpy as np
# CSV dosyasını açmak
dv= pd.read_csv('D:/Database/IstanbulPaleoArtifacs.csv')
print(dv.keys())

508
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: 1 nci satırın/kaydın 6 ncı sütünündaki


değeri yazmak. Matris gibi nitelendiriyor.
import pandas as pd
import numpy as np
# CSV dosyasını açmak
dv= pd.read_csv('D:/Database/IstanbulPaleoArtifacs.csv')
dv1=dv.iloc[1,6]
print(dv1)

509
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: TABLODAKİ SÜTUNLARIN Hepsini


YENİDEN ADLANDIRMAK RENAME COLUMNS .columns
import pandas as pd
import numpy as np
# CSV dosyasını açmak
dv= pd.read_csv('D:/Database/IstanbulPaleoArtifacs.csv')
dv.columns = ['AD','MALZEME','UZUNLUK','GENİŞLİK','KOD','SAYDAMLIK',
'FOSİL','TÜR','ALTTÜR','ELEMENT','RENK','FOTO1',
'FOTO2','FOTO3','FOTO4','3DMODEL']

print(dv)
print(dv [['AD','MALZEME']])

OLDU. Tüm sütunlar yeniden adlandırılmalı. Örneğin 16 sütun varken 12 tane


yeni ad yazılırsa hata veriyor.

510
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Sütunları Yeniden Adlandırmak rename()


import pandas as pd
import numpy as np
# CSV dosyasını açmak
dv= pd.read_csv('D:/Database/IstanbulPaleoArtifacs.csv')
dv.rename(columns={'Adı':'AD1', 'Malzemesi':'MALZEME1'}, inplace=True)
print(dv)

print(dv[['AD1','MALZEME1']])

OLDU Sadece 2 sütunun adını değiştirdim. Rename ilke istenen sütün adları
değiştirilebiliyor.hepsini yeniden yazmak gereklki değil

511
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Sıraya Dizmek df.sort_values(by=['col1'])


import pandas as pd
import numpy as np
df = pd.DataFrame({'col1' : ['A', 'A', 'C', np.nan, 'D', 'D'],'col2' : [2, 1,0, 9, 8,
6],'col3': [0, 9, 1, 6, 2, 3]})
print(df)
d1=df.sort_values(by=['col1'])
print(d1)
# Çoklu sütunlar ile sıraya dizmek(sort)
d2= df.sort_values(by=['col1', 'col2'])
print(d2)
d3=df.sort_values(by=['col3'])
print(d3)

512
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PANDA İLE CSV DOSYASI OKUMAK


pandas.read_csv("D:/……/.csv")
MS WORD DE VİRGÜLLÜ YAZIP DÜZ METİN YANİ TXT OLARAK OLUŞTURUP
KAYDETTİM

Excel’de Veri/Data menüsünden Metinden seçeneği ile açıp VİRGÜLLÜ CSV


olarak kaydettim.

import pandas as pd
dv1=pd.read_csv("D:/Programlama/CSV DENEMEM.csv")
print(dv1)

OLDU AÇDI

513
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: BAŞARI Pandas ile İLK VEKTÖR ALANI CSV


DOSYASINI OLUŞTURDUK
import pandas as pd
import numpy as np
#VeriÇerçevesi oluşturmak
raw_data = {'X': [0, 1, 1, 0, 0, 1, 1, 0],
'Y': [1, 1, 0, 0, 1, 1, 0, 0],
'Z': [0, 0, 0, 0, 1, 1, 1, 1],
'Vx': [0, 1, 1, 0, 0, 1, 1, 0],
'Vy': [0, 1, 1, 0, 0, 1, 1, 0],
'Vz': [0, 1, 1, 0, 0, 1, 1, 0]}
df = pd.DataFrame(raw_data, columns = ['X', 'Y', 'Z', 'Vx', 'Vy', 'Vz'])
print(df)
# Veri Çerçevesini(Dataframe) istenilen dizine CSV olarak kayfetmek
df.to_csv('D:/ParaView/CSV/VektorAlani.csv')

AFERİN BİZE ÇALIŞTI

514
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

VektorAlani.csv dosyası da oluştu

515
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Helal Oluşturduğum bu csv dosyasını ParaView de açtık

516
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Noktaları Table to Points filtresi uygulayarak görüntüleyelim


Table to points filtresini filters—Alphabetical dan uyguladım

Ve x y z sütünlarını properties den atadım belirledim

517
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Noktalar gözükdü

Arrow filtresi atayıp hem noktaları daha belirginleştirelim hem de Vektör alanı
oluşsun

518
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Color da solid yerine Vx değerine göre renklendirme uyguladım

Renk scalasını da yine soldan 3ncü simgeyi tıklayıp

Blueto red rainbow u seçdim

Axis ekseni işaretliyip görünür yapdım.ve axis i edit edip sadece 3 düzlemle axis
i gösterdim. İlk kendi oluşturduğum vektör alanı tanımlayan csv için iyi bir adım

HELAL 12.08.2018

519
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pandas Data Frame e satır(lar) eklemek:


import pandas as pd
df = pd.DataFrame(columns=['A'])
for i in range(5):
df = df.append({'A': i}, ignore_index=True)

print(df)

çalışdı

520
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pandas Data Frame e satır(lar) ekleme


Veya böyle Satır ekleme. Tek kademede tek bir programda yazmak istersem
df3 ekleyince oluyor

import pandas as pd

df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))


df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))
df=df.append(df2)

print(df)

521
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: DENEME2:BAŞARDIIIIKKK Python ile


Vektör Alanı içeren CSV dosyası oluşturmak
Deneme1 de Panda da 6 sütunlu Data Frame oluşturulup
Bu 3 lü çevrimde her çevrimde 1 satır eklenebilir dedim ve Deneme2 de
başardım

import numpy as np
import pandas as pd
from argparse import ArgumentParser
from math import exp, sqrt, sin, cos, atan2, pi

df = pd.DataFrame(columns = ['x', 'y', 'z', 'Vx', 'Vy', 'Vz'])

if __name__ == '__main__':
min_val = -1.0
max_val = 1.0
default_points = 10
arg_parser = ArgumentParser(description='produce a 3D vector field')
arg_parser.add_argument('-x', type=int, default=default_points,
help='number of x points')
arg_parser.add_argument('-y', type=int, default=default_points,
help='number of y points')
arg_parser.add_argument('-z', type=int, default=default_points,
help='number of z points')
options = arg_parser.parse_args()
fmt_str = '{x:.4f},{y:.4f},{z:.4f},{Vx:.8f},{Vy:.8f},{Vz:.8f}'
print ('x,y,z,Vx,Vy,Vz')
for z in np.linspace(0.0, max_val, num=options.z, endpoint=True):
for x in np.linspace(min_val, max_val, num=options.x, endpoint=True):
for y in np.linspace(min_val, max_val, num=options.y, endpoint=True):
d = sqrt(x**2 + y**2 + z**2)
v = (1.0 - exp(-d))*exp(-d)

522
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

theta = atan2(y, x)
Vx = v*sin(-theta)
Vy = v*cos(theta)
Vz = 0.1*exp(-3.0*z)
#Çok uğraştıran ama başardığım kısım
#çevrimde tabloya frame e satır eklemek satır eklemek
df2 = pd.DataFrame({'x': [x], 'y': [y], 'z': [z], 'Vx': [Vx], 'Vy':
[Vy], 'Vz': [Vz] })
df=df.append(df2)

# NveeiÇeeçevesini CSV olarak kaydetmek


df.to_csv('D:/ParaView/CSV/VektorAlani60.csv')

# tabloya frame kaydetti mi görmek için


print(df)

ilk etapta bu kısım hata vermedi boş bir CSV vektör dosyası oluştu.

523
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

VEE BAŞARDIK
VEKTÖR İÇEREN CSV DOSYASI OLUŞTU 13-08-2018

524
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

BUNU BEN OLUŞTURDUM


BU ŞEKİLDE HİÇBİR SİTEDE YOK.MANTIKLA ÇÖZDÜM VE ÇALIŞDI
df2 = pd.DataFrame({'x': [x], 'y': [y], 'z': [z], 'Vx': [Vx], 'Vy': [Vy], 'Vz': [Vz] })
df=df.append(df2)

df2 = pd.DataFrame(data.items())
df = df.append(df2)

df = pd.DataFrame(np_array)
Programın Çıktısı CSV olmayan hali

525
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Pandas x y z yi sütunlarından


numpy.array() oluşturmak. bu benim istediğim değil
import pandas as pd
import vtk
import numpy as np

#CSV dosyasını açmak


dv= pd.read_csv('D:/ParaView/CSV/VektorAlani66sade2.csv')

# Sadece x y z koordinat sütunlarından dv1 tablosunu oluşturmak


#dv1=dv.iloc[:, 4:7]

#dv1 in 1nci satırı nokta/point array inin birinci elamanı


x= dv['x']
y= dv['y']
z= dv['z']
pointarray=np.array([[x, y, z]])
print(pointarray)

buradan çıkan sonuç bu, bu benim istediğim değil

print(x[0])
0
print(z[4])
3

526
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Pandas Vector CSV sini Python’da okumak


import pandas as pd
import vtk
import numpy as np

#CSV dosyasını açmak


dv= pd.read_csv('D:/ParaView/CSV/VektorAlani66sade2.csv')
print(dv)

Dosyayı Açdım

527
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Pandas Vector csv sinden x sütununu


atamak. sütun adı ile sütun seçimi
import pandas as pd
import vtk
import numpy as np

#CSV dosyasını açmak


dv= pd.read_csv('D:/ParaView/CSV/VektorAlani66sade2.csv')
print(dv)

# x y z sütunlarından noktaları tanımlamak


dx= dv['x']
print(dx)

oldu tek bir x koordinat sütununu dx değişkenine atadım ve yazdırdım

528
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: .iloc[:, 4:7] 5, 6 ve 7 nci sütunlardan bir


Tablo oluşturmak
Ben index falan diye bakıyordum 0 lardan oluşan bir sütun daha var pandas da
oluştutduğum CSV de
Yani toplam 7 sütun olarak görüyor pandas
İloc metodu ile 4 ve 7nci sütunlardaki x y x koordinat sütunlarını aldım

import pandas as pd
import vtk
import numpy as np

#CSV dosyasını açmak


dv= pd.read_csv('D:/ParaView/CSV/VektorAlani66sade2.csv')
dv1=dv.iloc[:, 4:7]
print(dv1)

dv1 koordinat tablosu oldu

529
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: 1,2,3,4 ve 2,3,4 üncü sütunları yazdırmak


.iloc[:, 0:4] .iloc[:, 1:4]
import pandas as pd
import numpy as np
# CSV dosyasını açmak
dv= pd.read_csv('D:/Database/IstanbulPaleoArtifacs.csv')
# 1nci ,2nci ,3ncü ve 4ncü sütunları seçip yeni tablo oluşturup yazdırmak
dv1=dv.iloc[:, 0:4]
print(dv1)
# 2nci ,3ncü ve 4ncü sütunları seçip yeni tablo oluşturup yazdırmak
dv1=dv.iloc[:, 1:4]
print(dv1)

530
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Pandas .loc .iloc[[ ]] tablodan /frame den


index ler ile sütunlar almak
import pandas as pd
import vtk
import numpy as np

#CSV dosyasını açmak


dv= pd.read_csv('D:/ParaView/CSV/VektorAlani66sade2.csv')
print(dv[2:3])

operators, .iloc to explicity support only integer indexing, and .loc to


explicity support only label indexing
print(dv.loc[[2]])

print(dv.iloc[[2]])

print(dv)

531
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Pandas ._slice(slice( , ))


dv._slice(slice(0, 2))
dv._slice(slice(0, 2), 0) ilk 2 satırı yazdı

dv._slice(slice(0, 2), 1) ilk iki sütunu yazdı

532
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:Pandas Kayıttan record array e


.to_records(index=False)
import pandas as pd
import vtk
import numpy as np

#CSV dosyasını açmak


dv= pd.read_csv('D:/ParaView/CSV/VektorAlani66sade2.csv')

recordarray = dv.to_records(index=False)
print (recordarray)

DataFrame.to_records(index=True, convert_datetime64=None)[source]
DataFrame i nuöpy dizisine( NumPy record array) çevirir
df.to_records()

533
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:Pandas kayıttan Nokta/Point dizisi/array


ine .iloc[:, 4:7] 5 6 7 nci sütunlardan tablo
oluşturmak .to_records(index=False)
import pandas as pd
import vtk
import numpy as np

#CSV dosyasını açmak


dv= pd.read_csv('D:/ParaView/CSV/VektorAlani66sade2.csv')

#x y z Koordinatlarının olduğu 5 6 7 nci sütunlardan tablo oluşturmak


dv1=dv.iloc[:, 4:7]

# bu x y z tablosunu array e çevirmek


pointarray = dv1.to_records(index=False)
print (pointarray)

OLDU Noktalardan oluşan dizi

534
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pandas kayıttan Nokta/Point dizisi/array


ine BAŞARDIM
import pandas as pd
import vtk
import numpy as np

#CSV dosyasını açmak


dv= pd.read_csv('D:/ParaView/CSV/VektorAlani66sade2.csv')
#x y z Koordinatlarının olduğu 5 6 7 nci sütunlardan tablo oluşturmak
dv1=dv.iloc[:, 4:7]

# bu x y z tablosunu array e çevirmek


pointarray = dv1.to_records(index=False)
for p in pointarray:
print(p)

Sabahın 06.10 unda Çözdüğüm ve “Helal bana..Şükür Allaha”


dediğim bir kod 16-08-2018

535
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: .DB sqlite Veritabanı/DataBase


dosyasından PANDAS a pandas.read_sql_query()
Çalışdı
Sqlite Veritabanı modülünü ı bir başka çalışmada ayrıca anlatıcaz, ama bu
örnekte bir db dosyasını pandas da kullanabilmeyi göreceğiz.

import pandas as pd
import sqlite3

conn = sqlite3.connect("D:/Database/databasedeneme1.db")
df = pd.read_sql_query("select * from artifacts limit 6", conn)
print(df)

OLDU BAŞARI
Önceden oluşturduğum ve sonradan sqlite browser ile kayıt eklediğim sql
veri tabanı dosyası databasedeneme1.db deki artifacts tablosunu/table açıp
print ile kayıtları yazdırdım.

536
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Pandas SERİLERİ /Pandas Series


Serler bir boyutlu etiketli dizi-benzeri nesnelerdir. (array-like object). I
integers, floats, strings, Python objects türü verileei barındırabilir.

537
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pd.Series([ , , , , , ])
import pandas as pd
S = pd.Series([1, 66, 28, 72, 6, 9, 12, 99])
print(S)

S serisinin indeksi ve değeeleei


print(S.index)
print(S.values)

import numpy as np
X = np.array([11, 28, 72, 3, 5, 8])
print(X)
print(S.values)
# her ikisi de aynı türden
print(type(S.values), type(X))
[11 28 72 3 5 8]
[11 28 72 3 5 8]

Pandaa serileei Numpy dizilerinden çok farklı değildir.

538
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Seri ye Index tanımlama


import pandas as pd

meyvalar = ['elmalar', 'şeftaliler', 'kirazlar', 'kayısılar']


miktarlar = [12, 18, 99, 34]
S = pd.Series(miktarlar, index=meyvalar)
print(S)

UYGULAMA: Aynı indexdeki iki seriyi toplamak


import pandas as pd
meyvalar = ['elmalar', 'şeftaliler', 'kirazlar', 'kayısılar']
S = pd.Series([12, 18, 99, 34], index=meyvalar)
S2 = pd.Series([16, 19, 80, 46], index=meyvalar)
print(S + S2)
print("S ‘in toplamı: ", sum(S))
print("S2 ‘nin toplamı: ", sum(S2))
print("Tüm Meyvelerin toplamı: ", (sum(S) +sum(S2)))

539
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: farklı indexdeki İki seriyi toplamak


import pandas as pd
meyvalar = ['elmalar', 'şeftaliler', 'kirazlar', 'kayısılar']
meyvalar2 = ['şeftaliler', 'kavunlar','kirazlar', 'kayısılar']
S = pd.Series([22, 33, 52, 10], index= meyvalar)
S2 = pd.Series([9, 16, 34, 56], index= meyvalar2)
print(S + S2)

İkisinde de olanlar toplanıyor..olmayanlara NaN yazıyor

Serilerin toplanması (Series addition)

540
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pandas Değerlerin Listesi ile Seri


Oluşturmak

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

s = pd.Series([1,3,5,np.nan,6,8])
print(s)

541
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

PYTHON (PANDAS) ZAMAN SERİLERİ Pandas Time


series / Date functionality
Zaman serisi, düzenli zaman aralıklarında alınan veri noktalarının
oluşturduğu seridir. Bir zaman serisi,ilgilenilen bir büyüklüğün zaman
içerisinde sıralanmış ölçümlerinin bir kümesidir.
Zaman serisi analizi zamansal ölçümlerin yapıldığı her alanda
kullanılmaktadır. istatistik, ekonometri, finans, sinyal işleme, hava ve
deprem tahmini. Zaman serisi ile ilgili bu analizin yapılma amacı ise,
gözlem kümesince temsil edilen gerçeğin anlaşılması ve zaman
serisindeki değişkenlerin gelecekteki değerlerinin doğru bir şekilde
tahmin (forecast) edilmesidir*

Pandas tüm alanlarda zaman serilerileri verisi( time series data)


ile çalışmak çin birçok özelliklere sahiptir.
NumPy datetime64 and timedelta64 dtypes,
scikits.t de de timeseries vardır.

542
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pandas.to_datetime()
import pandas as pd

df = pd.DataFrame({'year': [2015, 2016],


'month': [2, 3],
'day': [4, 5]})

t=pd.to_datetime(df)
print(t)

Çıktısı: datetime64 dtype serisi

543
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pd.to_datetime()
import pandas as pd
a=pd.to_datetime('2018-01-15 3:45pm')
print(a)

UYGULAMA: pd.date_range( , periods= , freq='H' )


import pandas as pd
# 1 er saat ara ile freq=H Hour saat çünkü 3 period yazıyor
dti = pd.date_range('2018-01-01', periods=3, freq='H')
print(dti)

Belli zaman aralıkları ile sıralama( sequences) üretir.


freq frequency aralık(sıklık) belirten Harfler:
D Day gün sıkluğı
W Week hafta aralığında
M Month ay
SM Semi Month yarım ay
A, Y Year yıl
H Hourly saat sıklığında
T, min minute dakikada
S secondly saniyede
K, ms miliseconds milisaniye
U, us microseconds mikrossniye
N nanoseconds nanossniye

544
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA:pd.date_range( , periods= , freq='D' )


import pandas as pd
# 1 er gün ara ile freq=D Day saat çünkü 6 period yazıyor
dti = pd.date_range('2020-01-01', periods=6, freq='D')
print(dti)

UYGULAMA: .tz_localize('UTC')
import pandas as pd

# tz time zone un kısaltması


dti = pd.date_range('2020-01-01', periods=6, freq='D')
dti = dti.tz_localize('UTC')

print(dti)

545
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pd.date_range() pd.Series()


import pandas as pd
idx = pd.date_range('2018-01-01', periods=10, freq='H')
ts = pd.Series(range(len(idx)), index=idx)
print(ts

UYGULAMA: pd.date_range() pd.Series() .resample()


import pandas as pd

idx = pd.date_range('2018-01-01', periods=10, freq='H')


ts = pd.Series(range(len(idx)), index=idx)
ts2=ts.resample('2H').mean()
print(ts2)

Tarih (date) ve zaman(time) aritmetiği (mutlak veya görrceli zaman


arrımları ile)

546
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pd.Timestamp() pd.Timedelta()

import pandas as pd

friday = pd.Timestamp('2018-01-05')
d1=friday.day_name()
print(d1)

# 1 gün eklemek
saturday = friday + pd.Timedelta('1 day')
d2=saturday.day_name()
print(d2)

# 1 iş günü ekkemek (Cuma --> Pazartesi)


monday = friday + pd.offsets.BDay()
d3=monday.day_name()
print(d3)

stamp: etiketlemek
Timestamps : . time spans
Timestamped data zaman serisi verisidir.(time series data). Zamandaki
noktaları( points in time) belirtir.

547
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pd.date_range() datetime.datetime()


import pandas as pd
import datetime

başlangıç = datetime.datetime(2011, 1, 1)
son = datetime.datetime(2012, 1, 1)
indeks = pd.date_range(başlangıç, son)

print(indeks)

indeks2 = pd.bdate_range(başlangıç, son)


print(indeks2)

548
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Excel dosyalarını okuma ve yazma pd.read_excel()


pd.to_excel()

UYGULAMA: pd.read_excel()Excel dosyalarını okuma


import pandas
excel_df = pandas.read_excel('D:/Gelir/Gelir Gider Tablosu.xlsx',
sheet_name='Sayfa1')

# Tüm Sayfa Verilerinin yazdırılması


print(excel_df)

549
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pandas.read_excel()
df['EmpName'].tolist()

import pandas
excel_df = pandas.read_excel('D:/....../......xlsx', sheet_name='..........')

# Sütun Bilgisini(column data) Liste değerlerine(a list of values) çevirir


# Bir sütunun verisini yazdırır
print(excel_df['EmpName'].tolist())

UYGULAMA: pandas.read_excel()

# belli kolonları yazdırmak


import pandas

excel_df = pandas.read_excel('..........xlsx', sheet_name='......',


usecols=['.......', '..........'])

print(excel_df)

UYGULAMA: pandas.read_excel df.to_csv(index=False)


import pandas

excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Cars',


usecols=['Car Name', 'Car Price']) .

print('Excel Sheet to CSV:\n', excel_df.to_csv(index=False))

550
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: df1 = pd.DataFrame() df1.to_excel()


'openpyxl' Yüklü değilse hata veriyor çalışmıyor.
ModuleNotFoundError: No module named 'openpyxl' diyor.

Bunun yüklü olması gerektiğini de her iki örnek sitesi de söylemiyor.


Her iki sitede de. Bu bir eksiklik.
Bu hatanın sebebini Araştırınca bulduk.

Çözüm: D:\Python\Scripts\pip install openpyxl


28.11.2020 de yükledim. Ardından çalıştı.

# Pandas DataFrame ini Excel Dosyası haline getirir.


import pandas as pd

df1 = pd.DataFrame([['a', 'b'], ['c', 'd']], index=['row 1', 'row


2'],columns=['col 1', 'col 2'])

df1.to_excel("D:/Bilim/deneme.xlsx", sheet_name='SayfaAdı1')

Çalıştı: Dosyayı oluşturdu.


İçeriği:

551
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: df = pd.DataFrame() df.to_excel()

import pandas as pd

cars = {'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4'],


'Price': [32000,35000,37000,45000]
}

df = pd.DataFrame(cars, columns = ['Brand', 'Price'])


df.to_excel (r'D:\Bilim\export_dataframe.xlsx', index = False,
header=True)

Çalıştı:

552
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: df.to_json pandas.DataFrame.to_json


Nesneyi JSON string formatına çevirmek Text dosyası
from pandas import DataFrame

data = {'Ürün': ['Desktop Bilgisayar','Tablet','iPhone','Laptop'],


'Fiyat': [700,250,800,1200]
}

df = DataFrame(data, columns= ['Ürün', 'Fiyat'])


print (df)

df.to_json(r'D:/Bilim/Deneme.json')

Dosyayı da oluşturdu:

Notdefteri ile açtım

553
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Fonksiyon Uygulamak(Appliying functions)


f= lampda

df.apply(f)

pandas.DataFrame.apply
Apply a function along an axis of the DataFrame.

UYGULAMA: Dataframe’e Fonksiyon Uygulamak


df.apply(np.sqrt)
import pandas as pd
import numpy as np

df = pd.DataFrame([[4, 9, 16]] * 6, columns=['A', 'B', 'C'])


print(df)
# DataFrame ‘deki her bir elemanın kare kökünü alıyor
df1=df.apply(np.sqrt)
print(df1)

554
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: df.apply(lambda )
import pandas as pd

# Ekleme Fonksiyonu
def add(a, b, c):
return a + b + c

def main():
# create a dictionary with
# three fields each
data = {
'A':[1, 2, 3],
'B':[4, 5, 6],
'C':[7, 8, 9] }

# Dictionary’ yi veriçeeçevesine(dataframe) dönüştürüyor.


df = pd.DataFrame(data)
print("Original DataFrame:\n", df)
# 3 kolonun toplamını alıp 4ncü bir kolon oluşturmak
df['add'] = df.apply(lambda row : add(row['A'],
row['B'], row['C']), axis = 1)
print('\nAfter Applying Function: ')
print(df)

if __name__ == '__main__':
main()

555
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: df.apply() def ile tanımlanan fonksiyonu


Pandas Dataframe ‘e uygulama
import pandas as pd

df = pd.DataFrame({'A': [1, 2,3], 'B': [10, 20,30]})

def square(x):
return x * x

df1 = df.apply(square)

print(df)
print(df1)

556
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: DataFrame’e Fonksiyon uygulamak


df.apply(lambda x: x * x)
import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2,3], 'B': [10, 20,30]})


# Her bir elemanın karesini alıyor
df1 = df.apply(lambda x: x * x)
print(df)
print(df1)

557
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: df.apply()
import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2], 'B': [10, 20]})


print(df)
df1 = df.apply(np.sum, axis=0)
print(df1)
df1 = df.apply(np.sum, axis=1)
print(df1)

558
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pandas.DataFrame.drop(['B', 'C'], axis=1)


Sütunları kaldırmak

import pandas as pd
import numpy as np

df = pd.DataFrame(np.arange(12).reshape(3,4), columns=['A', 'B', 'C',


'D'])
print(df)
#Sütun çıkartma
df=df.drop(['B', 'C'], axis=1)
print(df)

559
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

V. PANDAS IN MATPLOTLIB İLE


KULLANIMI
UYGULAMA: Pandas Zaman Serisi Matplotlib ve
Seaborn
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame({"Datum": ['1/1/2018 0:00',


'1/1/2018 0:15',
'1/1/2018 0:30',
'1/1/2018 0:45',
'1/1/2018 1:00',
'1/1/2018 1:15',
'1/1/2018 1:30',
'1/1/2018 1:45 '],
"Menge": [19.5, 19.,19.5,19.5,21,19.5,20,23]})
sns.lineplot(x="Datum", y="Menge", data=df)
# 15 derece eğik çizdiriyor x eksenindeki değerleri
plt.xticks(rotation=15)
plt.title('seaborn-matplotlib Örneği')
plt.show()

Çoklu veri serilerini (Multiple data series) seabornd da çizdirmek için


sns.lineplot(data = df)

560
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

561
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PANDAS İLE CSV ‘den Okutup


MATPLOTLIB İle Grafiğini Çizdirmek
GÜZEL BİR UYGULAMA ÇOK İŞE YARAR

import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv("D:/Programlama/CSV DENEMEM.csv")
data.head()
data.plot()
plt.show()

Bilgi tekrarı: Csv dosyası vitgülle ayrılmış değerler içerir.(comma separated


values)

562
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pandas Matplotlib Çizimi kaydetmek


a.get_figure() .savefig("D:/……../..png")
import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv("D:/Programlama/CSV DENEMEM.csv")


data.head()
a=data.plot()
fig = a.get_figure()
fig.savefig("D:/Database/Artifactdatabasetablosu.png")

plt.show()

hem çizim yaptı hem de çizimi png dosyasına kaydetti

563
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: Pandas Matplotlib ile basit plot


import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000',
periods=1000))
ts = ts.cumsum()

# direkt DataFrame.plot() ile çizdiriliyor. Matplotlib Pandas toplamı bir komut


ts.plot()

plt.show()

564
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Uygulama: pandas matplotlib ile plot


import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2018',
periods=1000))
df = pd.DataFrame(np.random.randn(1000, 2), index=ts.index,
columns=list('AB'))
df = df.cumsum()

# direkt DataFrame.plot() ile çizdiriliyor. Matplotlib Pandas toplamı bir komut


# DataFrame’deki tüm sütunları(a ve B) etiketleri(labels) ile çiziyor
df.plot()
plt.show()

565
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pandas ve Matplotlib ile Çubuk Grafiği


.plot(kind='bar') Bar graph
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000',
periods=1000))
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index,
columns=list('ABCD'))

df = df.cumsum()
plt.figure()
# İlk çubuk(bar) grafiği çiziyor
df.iloc[5].plot(kind='bar')
# İkinci çizgili grafiği çiziyor. Direkt df dataframe den çiziyor
df.plot()
plt.show()

566
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: DataFrame.plot.bar() multiple bar plot /


Çoklu Çubuk grafiği çizdirmek
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df2 = pd.DataFrame(np.random.rand(6, 3), columns=['Selin', 'Müge', 'Melisa'])


df2.plot.bar()
plt.show()

DataFrame’s plot.bar() method produces a multiple bar plot

567
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Üst üste Çubuk(stacked bar) Grafiği


df2.plot.bar(stacked=True)
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df2 = pd.DataFrame(np.random.rand(6, 3), columns=['Selmin', 'Özlem',


'Melissa'])
df2.plot.bar(stacked=True)
plt.show()

Yığın çubuk grafiği(stacked bar plot) için stacked=True deniyor.

568
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Üst üste Yatay Çubuk Grafiği (horizontal


stacked bar) df2.plot.barh(stacked=True)
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df2 = pd.DataFrame(np.random.rand(6, 3), columns=['Selmin', 'Özlem',


'Melissa'])
# Bir önceki aynı grafiği barh horizontal yatay ile yatay çizdik
# Sracked ise üst üste yığın şeklinde demek buna true diyince bu şekilde çiziyor.
df2.plot.barh(stacked=True)
plt.show()

569
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: pd.to_datetime DATE HİSTOGRAM


map(lambda d: d.month).plot(kind='hist')
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'Ad':['Selin','Müge','Serpil','Özlem','Selena','Melisa'],
'DoğumGünü':['01/21/1990','03/10/1983','07/25/1992','01/22/1999','09/30/20
00','09/15/1990']})

#DoğumGünü Date Sütununu pandas.to_datetime() nile datetime türüne


# çeviriyor
df['DoğumGünü'] =
pd.to_datetime(df['DoğumGünü'],infer_datetime_format=True)

plt.clf()
# facecolor='r' ile red kırmızı yaptık çubuk(bar) histogram grafikleri
df['DoğumGünü'].map(lambda d: d.month).plot(kind='hist', facecolor='r')
plt.show()

570
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: Pasta(Pie) Grafiği


PandasDataFrame.plot.pie()
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'Kütle': [0.330, 4.87 , 5.97, 6.4], 'YarıÇap': [2439.7,


6051.8, 6378.1, 3397]},index=['Merkür', 'Venüs', 'Dünya', 'Mars'])
plot = df.plot.pie(y='Kütle', figsize=(6, 6))
plt.show()

Seçili sütun için matplotlib.pyplot.pie() uygulanıyor.

571
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: PANDAS
import pandas as pd
help(pd.DataFrame.mean)

MEAN İ TANIMLADI

Herbir metodun tanımını help komutu ile alabiliriz.


help(pd.DataFrame.mean)

572
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

UYGULAMA: DIR DATAFRAME METHODS


import pandas as pd
a=dir(pd.DataFrame)
print(a)

The List of DataFrame Methods


['T', '_AXIS_ALIASES', '_AXIS_IALIASES', '_AXIS_LEN', '_AXIS_NAMES',
'_AXIS_NUMBERS', '_AXIS_ORDERS', '_AXIS_REVERSED', '_AXIS_SLICEMAP',
'__abs__', '__add__', '__and__', '__array__', '__array_wrap__', '__bool__',
'__bytes__', '__class__', '__contains__', '__copy__', '__deepcopy__',
'__delattr__', '__delitem__', '__dict__', '__dir__', '__div__', '__doc__', '__eq__',
'__finalize__', '__floordiv__', '__format__', '__ge__', '__getattr__',
'__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__',
'__iadd__', '__iand__', '__ifloordiv__', '__imod__', '__imul__', '__init__',
'__init_subclass__', '__invert__', '__ior__', '__ipow__', '__isub__', '__iter__',
'__itruediv__', '__ixor__', '__le__', '__len__', '__lt__', '__mod__', '__module__',
'__mul__', '__ne__', '__neg__', '__new__', '__nonzero__', '__or__', '__pow__',
'__radd__', '__rand__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__',
'__rfloordiv__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__',
'__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__setitem__',
'__setstate__', '__sizeof__', '__str__', '__sub__', '__subclasshook__',
'__truediv__', '__unicode__', '__weakref__', '__xor__', '_accessors',
'_add_numeric_operations', '_add_series_only_operations',
'_add_series_or_dataframe_operations', '_agg_by_level', '_agg_doc',
'_aggregate', '_aggregate_multiple_funcs', '_align_frame', '_align_series',
'_apply_broadcast', '_apply_empty_result', '_apply_raw', '_apply_standard',
'_at', '_box_col_values', '_box_item_values', '_builtin_table',
'_check_inplace_setting', '_check_is_chained_assignment_possible',
'_check_percentile', '_check_setitem_copy', '_clear_item_cache',
'_clip_with_one_bound', '_clip_with_scalar', '_combine_const',
'_combine_frame', '_combine_match_columns', '_combine_match_index',

573
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

'_combine_series', '_combine_series_infer', '_compare_frame',


'_compare_frame_evaluate', '_consolidate', '_consolidate_inplace',
'_construct_axes_dict', '_construct_axes_dict_for_slice',
'_construct_axes_dict_from', '_construct_axes_from_arguments',
'_constructor', '_constructor_expanddim', '_constructor_sliced', '_convert',
'_count_level', '_create_indexer', '_cython_table', '_deprecations',
'_dir_additions', '_dir_deletions', '_drop_axis', '_ensure_valid_index',
'_expand_axes', '_flex_compare_frame', '_from_arrays', '_from_axes',
'_get_agg_axis', '_get_axis', '_get_axis_name',
'_get_axis_number', '_get_axis_resolvers', '_get_block_manager_axis',
'_get_bool_data', '_get_cacher', '_get_index_resolvers', '_get_item_cache',
'_get_numeric_data', '_get_valid_indices', '_get_value',
'_get_values', '_getitem_array', '_getitem_column', '_getitem_frame',
'_getitem_multilevel', '_getitem_slice', '_gotitem', '_iat', '_iget_item_cache',
'_iloc', '_indexed_same', '_info_axis', '_info_axis_name',
'_info_axis_number', '_info_repr', '_init_dict', '_init_mgr',
'_init_ndarray', '_internal_names', '_internal_names_set', '_is_builtin_func',
'_is_cached', '_is_cython_func', '_is_datelike_mixed_type', '_is_mixed_type',
'_is_numeric_mixed_type', '_is_view', '_ix', '_ixs', '_join_compat', '_loc',
'_maybe_cache_changed', '_maybe_update_cacher', '_metadata',
'_needs_reindex_multi', '_obj_with_exclusions', '_protect_consolidate',
'_reduce', '_reindex_axes', '_reindex_axis', '_reindex_columns',
'_reindex_index', '_reindex_multi', '_reindex_with_indexers',
'_repr_data_resource_', '_repr_fits_horizontal_', '_repr_fits_vertical_',
'_repr_html_', '_repr_latex_', '_reset_cache', '_reset_cacher',
'_sanitize_column', '_selected_obj', '_selection', '_selection_list',
'_selection_name', '_series', '_set_as_cached', '_set_axis', '_set_axis_name',
'_set_is_copy', '_set_item', '_set_value', '_setitem_array', '_setitem_frame',
'_setitem_slice', '_setup_axes', '_shallow_copy', '_slice', '_stat_axis',
'_stat_axis_name', '_stat_axis_number', '_take', '_to_dict_of_blocks',
'_try_aggregate_string_function', '_typ', '_unpickle_frame_compat',

574
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

'_unpickle_matrix_compat', '_update_inplace', '_validate_dtype', '_values',


'_where', '_xs', 'abs', 'add', 'add_prefix', 'add_suffix', 'agg', 'aggregate', 'align',
'all', 'any', 'append', 'apply', 'applymap', 'as_blocks', 'as_matrix', 'asfreq', 'asof',
'assign', 'astype', 'at', 'at_time', 'axes', 'between_time', 'bfill', 'blocks', 'bool',
'boxplot', 'clip', 'clip_lower', 'clip_upper', 'columns', 'combine',
'combine_first', 'compound', 'consolidate', 'convert_objects', 'copy', 'corr',
'corrwith', 'count', 'cov', 'cummax', 'cummin', 'cumprod', 'cumsum', 'describe',
'diff', 'div', 'divide', 'dot', 'drop', 'drop_duplicates', 'dropna', 'dtypes',
'duplicated', 'empty', 'eq', 'equals', 'eval', 'ewm', 'expanding', 'ffill', 'fillna',
'filter', 'first', 'first_valid_index', 'floordiv', 'from_csv', 'from_dict', 'from_items',
'from_records', 'ftypes', 'ge', 'get', 'get_dtype_counts', 'get_ftype_counts',
'get_value', 'get_values', 'groupby', 'gt', 'head', 'hist', 'iat', 'idxmax',
'idxmin', 'iloc', 'index', 'infer_objects', 'info', 'insert', 'interpolate', 'is_copy',
'isin', 'isna', 'isnull', 'items', 'iteritems', 'iterrows', 'itertuples', 'ix', 'join', 'keys',
'kurt', 'kurtosis', 'last', 'last_valid_index', 'le', 'loc', 'lookup', 'lt', 'mad', 'mask',
'max', 'mean', 'median', 'melt', 'memory_usage', 'merge', 'min', 'mod',
'mode', 'mul', 'multiply', 'ndim', 'ne', 'nlargest', 'notna', 'notnull', 'nsmallest',
'nunique', 'pct_change', 'pipe', 'pivot', 'pivot_table', 'plot', 'pop', 'pow', 'prod',
'product', 'quantile', 'query', 'radd', 'rank', 'rdiv', 'reindex', 'reindex_axis',
'reindex_like', 'rename', 'rename_axis', 'reorder_levels', 'replace', 'resample',
'reset_index', 'rfloordiv', 'rmod', 'rmul', 'rolling', 'round', 'rpow', 'rsub',
'rtruediv', 'sample', 'select', 'select_dtypes', 'sem', 'set_axis', 'set_index',
'set_value', 'shape', 'shift', 'size', 'skew', 'slice_shift', 'sort_index', 'sort_values',
'sortlevel', 'squeeze', 'stack', 'std', 'style', 'sub', 'subtract', 'sum', 'swapaxes',
'swaplevel', 'tail', 'take', 'to_clipboard', 'to_csv', 'to_dense', 'to_dict', 'to_excel',
'to_feather', 'to_gbq', 'to_hdf', 'to_html', 'to_json', 'to_latex', 'to_msgpack',
'to_panel', 'to_parquet', 'to_period', 'to_pickle', 'to_records', 'to_sparse',
'to_sql', 'to_stata', 'to_string', 'to_timestamp', 'to_xarray', 'transform',
'transpose', 'truediv', 'truncate', 'tshift', 'tz_convert', 'tz_localize', 'unstack',
'update', 'values', 'var', 'where', 'xs']

575
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

TERMİNOLOJİ
Array: Dizi

Matrix : Matris, İki boyutlu Dizi

Tensor: Tensör, 3 veya daha büyük boyuttaki Dizi.

Rank Derece matrisin boyutu matrisin derecesi 2 boyutlu matris


3 boyutlu tensör örnek : 6x3x10 rank=3

Index : İndis , elamanın dizideki yerini belirten rakam kaçıncı satır kaçıncı
sütunu belirten, sıralama nosu, ve fiil sıralamak
İndices indisler index in çoğulu [6,1] elemanın yerini tanımlıyor ilki satır no
ikincisi sütun no 6+1 7nci satırın 1+1= 2 nci elemanı
numpy numaralamaya 0 dan başladığı için 1 eklişyoruz rakamlara

Tuple: dizinin indislerinin bütünü , tuple of array dimentions


.shape fonksiyonunun verdiği dizinin boyutlarını gösteren rakamlar
bütünü örnek: (6,6)

Row Satır 1nci boyut


Column Sütun 2nci boyut
Tube 3ncü boyut matrix veya tensor’ün

Factorization: Çarpanlarına Ayırma


Factoring : Çarpanlarına Ayırma
Factors: Çarpanlar
Matrix Factorization: Matrisi Çarpanlarına Ayırma
LU Matrix Decomposition : Bu da matrisi çarpanlarına ayırmadaki bir yöntem

Diagonal: köşegen
Matrix diagonal: Matris Köşegeni

Vector: Vektör : hız kuvvet ivme gibi yönü şiddeti olan ve ok ile gösterilen
hareketin ve kuvvetin olduğu her alanda karşımıza çıkan fizik
kavramı

576
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Eigen: (own, characteristic) Kendi, kendine özgü, öz


Egenvector : Eigen vektörö Öz vektör
Eigenvalue.: Eigen değer, Öz değer (Almanca eigen’den geliyor)
Matrislerde Doğrusal Cebir, Doğrusal Dönüşümde
Bir Matrisin özellikleri. Matrisle çarpıldığında sadece büyüklüğü
değişen vektör. Doğrultusu değişmiyor.
(facial recognition da yüz tanımada bile kullanılıyor)
Axis : Eksenler, Matplotlib’de çizimin geri planındaki x,y,z eksenleri
xyz axis : xyz eksenleri

Data Visualization Veri Görselleştirmesi


Scientific Visualization Bilimsel Görselleştirme
3D Visualization 3 Boyutlu Görselleştirme

Contour : Kontur (yol yol)

Gantt Chart : Proje yönetiminde kullanılan, işleri tanımlayan ve işin


süresinin boyları belirlediği yatay çubuklardan oluşan grafik.

Scatter Plot: Dağılım Çizimi (ingilizcesinde graph denmemiş biz de graf


demiyelim)

2D Scattering : 2 Boyutlu Dağalım


3D Scattering : 3 Boyutlu dağılım. Matplotlib’de var. Yapay Zeka(Artificial
Intelligence) ın bir alanı bir alt başlığı olan Makine Öğrenmesi(Machine
Learning)’ de bir metod.

Clustering : Kümelenme, Kümeleme


Cluster: Kümelenme
Number of Clusters : Kümelenme Sayısı

PCA Principal component analysis on a matrix (2D) (Yapay zeka eklentisi


Scitlearn de var) PTA Principal tensor analysis on a array (3D)
clustering analysis with Hierarchical Clustering

Correlation : Bağıntı(ilişki) Co( r) (beraber, birlikte) + relation


577
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Visualizing regression models

Regression: İlişkilendirme, Bağıntı(İlişki) arama

Linear Regression: Doğrusal İlişkilendirme (Regresyon)

Multiple Linear Regression

Logistic Regression Curve:

Sigmoidal Sigmoid curve S şeklindeki bir eğri türü

Doğrusal İlişkilendirme ( Linear Regression) ve Korelasyon


Katsayısı(Correlation Coefficient)
578
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

K-means Kümeleme (k-means Clustering)


K-means kümeleme (K-ortalama kümeleme) (K-means clustering)
yöntemi N adet veri nesnesinden oluşan bir veri kümesini giriş
parametresi olarak verilen K adet kümeye bölümlemektir. Kümeleme
algoritmasıdır.
Algoritma 4 aşamadan oluşur:
1.Küme merkezlerinin belirlenmesi
2.Merkez dışındaki verilerin mesafelerine göre kümelendirilmesi
3.Yapılan kümelendirmeye göre yeni merkezlerin belirlenmesi
(veya eski merkezlerin yeni merkeze kaydırılması)
4.Kararlı hale (stable state) gelinene kadar 2. ve 3. adımların
tekrarlanması.

SciPy ve scikit-learn multiple k-means uygulamaları içerir


OpenCV contains a k-means implementation.
Torch contains an unsup package that provides k-means clustering.
scipy.cluster.vq.kmeans

Quantize : nicelendirmek, niceliklerini bulmak


Quantization:
centroid: koordinatları kümedeki noktaların koordinatlarının ortalama
değerine eşit olan nokta, ağırlık merkezi, kütle merkezi,

579
Python Bilim Paketi Numpy, SciPy, Matplotlib, Pandas N.Derya Varol

Data Frame :Veri Çerçevesi


Table: tablo
Database: Veri tabanı
CSV (Comma Sepereted Value) file : CSV (Virgülle Ayrılmış Değerler)
dosyası Excel le de açılabilen Veri Tablosu içeren dosya.. Pandas’da
pandas.read_csv('D://.csv') ve write CSV komutları ile okunur ve yazılır.
Bilimsel Görselleştirmedeki tanımı: Nokta koordinatları ve noktalardaki vektör
bileşenlerini içeren tablo olarak içeren 6 sütunllu Vektör Alanı tanımlayan dosya
JSON (JavaScript Object Notation) dosya formatı( a text format )
Notepad , wordpad ve Ms Word açıyor..
Pandas dataframe ‘i json olarak da kaydedilebiliyor.

580
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
KAYNAKLAR/RESOURCES
Değinilen Kaynaklar
N.Derya Varol “Python Programlama Dilinde Numpy ve Matplotlib Modülleri
ile numpy.meshgrid() ve quiver( ) kullanarak 3 Boyutlu Vektör Alanı
Çizdirmek” Temmuz 2018 Researghgate ve academia.edu
https://www.researchgate.net/publication/326579581_Python_Programlama_
Dilinde_Numpy_ve_Matplotlib_Modulleri_ile_numpymeshgrid_ve_quiver_kull
anarak_3_Boyutlu_Vektor_Alani_Cizdirmek

N.Derya Varol “PYTHON, VTK VE PARAVIEW İLE BİLİMSEL GÖRSELLEŞTİRME


VTK ya Giriş Python VTK ve ParaView’de 3D Vektör Alanı Oluşturulması ve
Görselleştirilmesi” Eylül 2018 Publisher: Self-PublishingISBN: 978-605-62333-
3-3 Researghgate ve academia.edu
https://www.researchgate.net/publication/327765622_PYTHON_VTK_VE_PAR
AVIEW_ILE_BILIMSEL_GORSELLESTIRME_VTK_ya_Giris_Python_VTK_ve_ParaVi
ew'de_3D_Vektor_Alani_Olusturulmasi_ve_Gorsellestirilmesi

581
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
PYTHON PROGRAMLAMA DİLİ VE UYGULAMALARI
PYTHON PROGRAMMING LANGUAGE AND APPLICATIONS Dersinin
içeriğinin oluşturulması sırasında faydalanılan Kaynaklar
Python ile Programlama
[] https://www.python.org/
[] http://www.afterhoursprogramming.com/tutorial/Python/Introduction/
[] https://docs.python.org/2/library/idle.html
[] https://docs.python.org/2.4/lib/typesnumeric.html#tex2html7
[]https://www.tutorialspoint.com/python/python_numbers.htm
[] https://www.programiz.com/python-programming/modules/math
[]https://stackoverflow.com/questions/1888114/python-hexadecimal-
comparison
[]http://www.geeksforgeeks.org/byte-objects-vs-string-python/
[] https://www.tutorialspoint.com/python/python_basic_operators.htm
[] https://www.tutorialspoint.com/python/bitwise_operators_example.htm
[] https://stackoverflow.com/questions/1746613/bitwise-operation-and-usage
[] https://www.programiz.com/python-programming/function
[] https://jeffknupp.com/blog/2014/06/18/improve-your-python-python-
classes-and-object-oriented-programming/
[] https://stackoverflow.com/questions/15081542/python-creating-objects
[] https://www.programiz.com/article/python-self-why
[] https://pythontips.com/2013/08/07/the-self-variable-in-python-explained/
[] https://www.python-course.eu/object_oriented_programming.php
[] http://www.i-programmer.info/programming/python/3942-arrays-in-
python.html
[] https://www.tutorialspoint.com/python/list_list.htm
[] https://www.programiz.com/python-programming/list
[] Introduction to Computer Science and Programming in Python MIT
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-
0001-introduction-to-computer-science-and-programming-in-python-fall-
2016/index.htm

582
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[] Python Tutorial MIT(Mass. Ins. Of Tech.)
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-
01sc-introduction-to-electrical-engineering-and-computer-science-i-spring-
2011/python-tutorial/
[] https://docs.python.org/3/library/datetime.html
[] https://stackoverflow.com/questions/15226898/python-3-2-input-date-
function
[] https://stackoverflow.com/questions/8419564/difference-between-two-
dates

583
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
Python BİLİM SCIENCE PAKETİ: Numpy(Numeric Python),
SciPy(Scientific Python),Matplotlab, Pandas

Numpy
[] http://www.i-programmer.info/programming/python/5785-advanced-
python-arrays-introducing-numpy.html
[] http://cs231n.github.io/python-numpy-tutorial/
[] http://www.numpy.org
[] https://www.scipy.org/
[] https://docs.scipy.org/doc/numpy-1.13.0/user/basics.creation.html
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.array.html
[] http://cs231n.github.io/python-numpy-tutorial/#numpy-array-indexing
[] http://cs231n.github.io/python-numpy-tutorial/
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.asarray.html
[] https://docs.scipy.org/doc/numpy-1.13.0/reference/arrays.ndarray.html
[] https://www.python-course.eu/matrix_arithmetic.php
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.arange.html
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.ndarray.dot.html
[] https://scipy.github.io/old-wiki/pages/Cookbook
[] https://docs.scipy.org/doc/scipy/reference/tutorial/special.html
[] https://docs.scipy.org/doc/scipy/reference/special.html#struve-functions
[] “NumPy for Matlab users: Equivalents”
https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html
[] “NumPy for MATLAB users”
http://mathesaurus.sourceforge.net/matlab-numpy.html
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.linspace.html
[] https://numpy.org/doc/stable/reference/generated/numpy.chararray.html

584
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[] the importance of linear algebra to machine learning, vector, and matrix
operations, matrix factorization, principal component analysis,
https://machinelearningmastery.com/linear_algebra_for_machine_learning/
[] https://medium.com/@paritosh_30025/recommendation-using-matrix-
factorization-5223a8ee1f4
[] https://www.python-course.eu/neural_networks_with_python_numpy.php
https://study.com/academy/lesson/difference-between-a-row-column-
vector.html
[] What’s the difference between a matrix and a tensor?
https://medium.com/@quantumsteinke/whats-the-difference-between-a-
matrix-and-a-tensor-
4505fbdc576c#:~:text=The%20basic%20idea%2C%20though%2C%20is,of%20as
%20a%20generalized%20matrix.&text=Any%20rank%2D2%20tensor%20can,rea
lly%20a%20rank%2D2%20tensor.
[] https://www.geeksforgeeks.org/numpy-ndarray-ndim-method-python/
[] Explaining the differences between dim, shape, rank, dimension and axis in numpy
https://stackoverflow.com/questions/22114921/explaining-the-differences-
between-dim-shape-rank-dimension-and-axis-in-numpy
[] A Gentle Introduction to Tensors for Machine Learning with NumPy
https://machinelearningmastery.com/introduction-to-tensors-for-machine-
learning/
[] numpy.linalg.tensorinv
https://numpy.org/doc/stable/reference/generated/numpy.linalg.tensorinv.htm
l
[ ] numpy.tensordot
https://numpy.org/doc/stable/reference/generated/numpy.tensordot.html
[] ***How to convert mat file to numpy array
https://stackoverflow.com/questions/62274746/how-to-convert-mat-file-to-
numpy-array

585
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[] https://numpy.org/doc/stable/reference/generated/
[] numpy.linalg.tensorsolve.html
[] rank
https://www.kite.com/python/docs/numpy.rank
[] Tensors
https://towardsdatascience.com/quick-ml-concepts-tensors-eb1330d7760f
[] Tensor- Wikipedia
[] From Scalar to Tensor: Fundamental Mathematics for Machine Learning
with Intuitive Examples Part 1/3
https://medium.com/datadriveninvestor/from-scalar-to-tensor-fundamental-
mathematics-for-machine-learning-with-intuitive-examples-part-163727dfea8d
[] “Basics of Linear Algebra for Machine Learning”
Discover the Mathematical Language of Data in Python
Linear algebra is a pillar of machine learning.
[] https://www.quantstart.com/articles/LU-Decomposition-in-Python-and-
NumPy
[] A Gentle Introduction to Matrix Factorization for Machine Learning
by Jason Brownlee on February 16, 2018 in Linear Algebra
[] https://machinelearningmastery.com/introduction-to-matrix-
decompositions-for-machine-learning/
[] The LU decomposition
https://subscription.packtpub.com/book/big_data_and_business_intelligence/
9781784394516/2/ch02lvl1sec18/the-lu-decomposition
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.arange.html
[] http://tiao.io/posts/numpy-mgrid-vs-meshgrid/
[] https://stackoverflow.com/questions/12402045/mesh-grid-functions-in-
python-meshgrid-mgrid-ogrid-ndgrid
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.meshgrid.html
[] https://stackoverflow.com/questions/36013063/what-is-purpose-of-
meshgrid-in-python

586
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.linalg.solve.html#numpy.linalg.solve
[]https://chrisalbon.com/python/basics/generating_random_numbers_with_n
umpy/
[]https://docs.scipy.org/doc/numpy-
1.15.0/reference/generated/numpy.random.random.html
[] https://www.tutorialspoint.com/numpy/numpy_indexing_and_slicing.htm
[] “A Gentle Introduction to Tensors for Machine Learning with NumPy”
https://machinelearningmastery.com/introduction-to-tensors-for-machine-
learning/
[]http://www.scipy-
lectures.org/intro/numpy/auto_examples/plot_elephant.html#sphx-glr-intro-
numpy-auto-examples-plot-elephant-py
[] https://www.kdnuggets.com/2018/05/wtf-tensor.html
[] https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html
[] http://mathesaurus.sourceforge.net/matlab-numpy.html
[] https://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html
[]https://docs.scipy.org/doc/numpy/reference/generated/numpy.tensordot.ht
ml
[] https://jakevdp.github.io/PythonDataScienceHandbook/02.02-the-basics-of-
numpy-arrays.html
[] https://www.slideshare.net/BertonEarnshaw/a-brief-survey-of-tensors
[ ] https://en.wikibooks.org/wiki/Category:Book:General_Relativity
[] “CS4618: Artificial Intelligence I Vectors and Matrices”
Derek Bridge School of Computer Science and Information Technology
University College Cork
[] http://www.cs.ucc.ie/~dgb/courses/ai1/09_matrices.pdf
[] “Introduction to Matrices and Matrix Arithmetic for Machine Learning”
https://machinelearningmastery.com/introduction-matrices-machine-learning/
[] “An Essential Guide to Numpy for Machine Learning in Python”
The Quintessential Library for ML!
https://becominghuman.ai/an-essential-guide-to-numpy-for-machine-learning-
in-python-5615e1758301

587
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[] https://www.python-course.eu/matrix_arithmetic.php
[][https://stackoverflow.com/questions/4257394/slicing-of-a-numpy-2d-array-
or-how-do-i-extract-an-mxm-submatrix-from-an-nxn-ar
[] http://www.numpy.org
[] How to Index, Slice and Reshape NumPy Arrays for Machine Learning
https://machinelearningmastery.com/index-slice-reshape-numpy-arrays-
machine-learning-python/
[] https://www.tutorialspoint.com/python/python_lists.htm
[] https://docs.scipy.org/doc/numpy-1.13.0/reference/arrays.ndarray.html
[] https://github.com/TarrySingh/Artificial-Intelligence-Deep-Learning-
Machine-Learning-Tutorials/blob/master/numpy/02.06-Boolean-Arrays-and-
Masks.ipynb
[] https://www.quora.com/What-does-the-determinant-of-a-matrix-mean-
physically-How-do-I-visualize-it
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.ndarray.dot.html
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.asarray.html
[] https://stackoverflow.com/questions/14415741/numpy-array-vs-
asarray/41030256#41030256
[] Store different datatypes in one NumPy array?
https://stackoverflow.com/questions/11309739/store-different-datatypes-in-
one-numpy-array
[] http://hplgit.github.io/scitools/doc/api/html/index.html

588
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
Scipy
[] Matrices are a foundational element of linear algebra.
“scipy.integrate.quad”
https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.quad.ht
ml
[]https://docs.scipy.org/doc/scipy-
0.14.0/reference/generated/scipy.linalg.lu.html
[] https://docs.scipy.org/doc/scipy-0.18.1/reference/tutorial/special.html
[] Use Scipy Optimizer with Tensorflow 2.0 for Neural Network training
https://stackoverflow.com/questions/59029854/use-scipy-optimizer-with-
tensorflow-2-0-for-neural-network-training
[] https://www.scipy.org/
[] https://docs.scipy.org/doc/scipy/reference/tutorial/linalg.html
[] https://docs.scipy.org/doc/scipy/reference/special.html#struve-functions
[] https://eksisozluk.com/bessel-fonksiyonlari--378418

589
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
Matplotlib
[]http://www.scipy-lectures.org/intro/numpy/auto_examples/
plot_basic1dplot.html#sphx-glr-intro-numpy-auto-examples-plot-basic1dplot-
py
[] https://matplotlib.org/examples/axes_grid/demo_axisline_style.html
[] https://matplotlib.org/examples/
[] https://matplotlib.org/examples/animation/simple_anim.html
[] https://matplotlib.org/examples/animation/basic_example.html
[]http://www.scipy-
lectures.org/intro/numpy/auto_examples/plot_elephant.html#sphx-glr-intro-
numpy-auto-examples-plot-elephant-py
[] https://scipy.github.io/old-wiki/pages/Cookbook/Matplotlib.html
https://scipy.github.io/old-
wiki/pages/Cookbook/Matplotlib/SigmoidalFunctions.html
[] https://stackoverflow.com/questions/29330307/how-to-delete-a-set-of-
meshgrid-points-inside-a-circle
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.meshgrid.html
[] https://stackoverflow.com/questions/36013063/what-is-purpose-of-
meshgrid-in-python
[] https://stackoverflow.com/questions/12402045/mesh-grid-functions-in-
python-meshgrid-mgrid-ogrid-ndgrid
[] http://hplgit.github.io/scitools/doc/api/html/index.html
[]https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.linspace.html
[] https://matplotlib.org/users/pyplot_tutorial.html
[] Programming for Engineers: Plotting with matplotlib in Python
http://apmonitor.com/che263/index.php/Main/PythonPlots
[] Using the Matplotlib Library in Python 3
http://www.eg.bucknell.edu/~csci203/common-files/course-
docs/UsingMatplotlib.pdf
[] https://docs.scipy.org/doc/scipy-0.18.1/reference/tutorial/special.html
[] http://maths-with-python.readthedocs.io/en/latest/06-numpy-plotting.html

590
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[] https://matplotlib.org/1.5.1/mpl_toolkits/mplot3d/tutorial.html
[] https://matplotlib.org/examples/scales/scales.html
[] https://matplotlib.org/gallery.html#shapes_and_collections
[]https://matplotlib.org/examples/images_contours_and_fields/streamplot_de
mo_features.html
[]https://matplotlib.org/examples/images_contours_and_fields/streamplot_de
mo_masking.html
[] https://matplotlib.org/examples/color/named_colors.html
[] https://matplotlib.org/examples/specialty_plots/advanced_hillshading.html
[] https://matplotlib.org/devdocs/gallery/misc/table_demo.html#sphx-glr-
gallery-misc-table-demo-py
[]https://matplotlib.org/devdocs/gallery/images_contours_and_fields/contour
_demo.html#sphx-glr-gallery-images-contours-and-fields-contour-demo-py
[] http://scipy-cookbook.readthedocs.io/items/Matplotlib_Arrows.html
[] https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.contour.html
[] http://kestrel.nmt.edu/~raymond/software/python_notes/paper004.html
[] https://matplotlib.org/examples/pylab_examples/contour_demo.html
[] https://matplotlib.org/examples/pylab_examples/contourf_demo.html
[]https://matplotlib.org/devdocs/gallery/images_contours_and_fields/contour
_demo.html#sphx-glr-gallery-images-contours-and-fields-contour-demo-py
[]https://matplotlib.org/gallery/text_labels_and_annotations/arrow_simple_d
emo.html
[]https://matplotlib.org/devdocs/api/_as_gen/matplotlib.axes.Axes.quiver.htm
l
[]http://www.scipy-
lectures.org/intro/matplotlib/auto_examples/plot_quiver_ex.html
[]https://matplotlib.org/gallery/images_contours_and_fields/quiver_simple_de
mo.html
[] https://matplotlib.org/examples/pylab_examples/quiver_demo.html
[] https://www.tutorialspoint.com/matplotlib/matplotlib_pylab_module.htm

591
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[]https://matplotlib.org/gallery/images_contours_and_fields/quiver_demo.ht
ml
[] https://pybilim.wordpress.com/2014/01/18/matplotlib-2-cizgi-
bicimlendirme/#more-355
[] Python For Engineers :An introduction to Numpy and Matplotlib
http://pythonforengineers.com/an-introduction-to-numpy-and-matplotlib/
[] https://matplotlib.org/users/annotations.html
https://matplotlib.org/2.0.0/examples/mplot3d/subplot3d_demo.html
[] https://stackoverflow.com/questions/24337813/how-does-subplot-work-
and-what-is-the-difference-between-subplot121-and-subplo
[] https://matplotlib.org/1.5.1/mpl_toolkits/mplot3d/tutorial.html
[] https://matplotlib.org/examples/color/colormaps_reference.html
[] https://matplotlib.org/3.1.0/tutorials/colors/colormaps.html
[] http://maths-with-python.readthedocs.io/en/latest/06-numpy-plotting.html
[] https://jakevdp.github.io/PythonDataScienceHandbook/04.12-three-
dimensional-plotting.html
[] https://jakevdp.github.io/PythonDataScienceHandbook/04.12-three-
dimensional-plotting.html
[]http://www.scipy-
lectures.org/intro/matplotlib/auto_examples/pretty_plots/plot_plot3d_ext.ht
ml#sphx-glr-intro-matplotlib-auto-examples-pretty-plots-plot-plot3d-ext-py
[]http://kestrel.nmt.edu/~raymond/software/python_notes/paper004.htmlhtt
ps://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.contour.html
[]
https://matplotlib.org/devdocs/gallery/images_contours_and_fields/contour_
demo.html#sphx-glr-gallery-images-contours-and-fields-contour-demo-py
[]https://matplotlib.org/examples/images_contours_and_fields/streamplot_de
mo_masking.html
[]https://matplotlib.org/gallery/text_labels_and_annotations/arrow_simple_d
emo.html
[]https://matplotlib.org/devdocs/api/_as_gen/matplotlib.axes.Axes.quiver.htm
l

592
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[]https://matplotlib.org/examples/images_contours_and_fields/streamplot_de
mo_features.html
[]http://www.scipy-
lectures.org/intro/scipy/auto_examples/plot_2d_minimization.html#sphx-glr-
intro-scipy-auto-examples-plot-2d-minimization-py
[] https://matplotlib.org/examples/api/engineering_formatter.html
[] https://matplotlib.org/2.0.2/users/pyplot_tutorial.html
[] https://queirozf.com/entries/matplotlib-pylab-pyplot-etc-what-s-the-
different-between-these
[] https://stackoverflow.com/questions/4804005/matplotlib-figure-facecolor-
background-color
[]http://www.scipy-
lectures.org/intro/numpy/auto_examples/plot_basic1dplot.html#sphx-glr-
intro-numpy-auto-examples-plot-basic1dplot-py
[] https://matplotlib.org/examples/
[] https://matplotlib.org/users/pyplot_tutorial.html
[] https://stackoverflow.com/questions/11469336/what-is-the-difference-
between-pylab-and-pyplot
[] https://matplotlib.org/gallery.html#shapes_and_collections
[]https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.streamplot.ht
ml
[]https://www.reddit.com/r/learnpython/comments/150oye/so_whats_exactly
_the_difference_between_pylab_and/
[] https://stackoverflow.com/questions/11469336/what-is-the-difference-
between-pylab-and-pyplot
[] How to change the background color of an insert figure?
https://github.com/matplotlib/matplotlib/issues/12857
[] How to Change Plot Background in Matplotlib
https://stackabuse.com/how-to-change-plot-background-in-matplotlib/
[] https://stackoverflow.com/questions/51660547/how-to-change-matlibplot-
background-color-when-using-imshow
[] http://scipy-cookbook.readthedocs.io/items/Matplotlib_Arrows.html

593
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[] https://www.geeksforgeeks.org/matplotlib-pyplot-matshow-in-python/
[]https://matplotlib.org/3.3.3/gallery/images_contours_and_fields/matshow.h
tml#sphx-glr-gallery-images-contours-and-fields-matshow-py
[] pylab_examples example code: matshow.py
https://het.as.utexas.edu/HET/Software/Matplotlib/examples/pylab_examples/
matshow.html
[] Matplotlib: Changing the color of an axis
https://stackoverflow.com/questions/1982770/matplotlib-changing-the-color-
of-an-axis
[] https://matplotlib.org/gallery/widgets/cursor.html#sphx-glr-gallery-widgets-
cursor-py
[] https://matplotlib.org/3.1.1/tutorials/colors/colors.html
[] https://matplotlib.org/3.3.3/tutorials/introductory/customizing.html
[] https://www.tutorialspoint.com/matplotlib/matplotlib_violin_plot.htm
[] Matplotlib - Box Plot
https://www.tutorialspoint.com/matplotlib/matplotlib_box_plot.htm
[] Box Plot in Python using Matplotlib
https://www.geeksforgeeks.org/box-plot-in-python-using-matplotlib/
[] “Mod, Medyan, Aritmetik Ortalama, Standart Sapma Hesaplama ve Veri
Sıralama”
[] https://standart-sapma-hesaplama.hesabet.com/
[] Kutu Grafiği (Boxplot)
https://yalin-dunya.com/2020/06/19/kutu-grafigi-boxplot/
[] http://matplotlib.org/1.4.3/examples/ticks_and_spines/spines_demo.html
[] Matplotlib Tutorial: Spines and Ticks
Moving the Border Lines and Polishing up the Axes Notations
https://www.python-course.eu/matplotlib_spines_and_ticks.php
[] Programming for Engineers: Plotting with matplotlib in Python
http://apmonitor.com/che263/index.php/Main/PythonPlots
[] https://matplotlib.org/examples/scales/scales.html
[] https://plotly.com/python/gantt/
[] https://stackoverflow.com/questions/4761623/changing-the-color-of-the-
axis-ticks-and-labels-for-a-plot-in-matplotlib?rq=1

594
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[]https://matplotlib.org/gallery/images_contours_and_fields/quiver_simple_de
mo.html
[]http://www.scipy-
lectures.org/intro/matplotlib/auto_examples/plot_quiver_ex.html
[] https://matplotlib.org/examples/pylab_examples/quiver_demo.html
[] http://kestrel.nmt.edu/~raymond/software/python_notes/paper004.html
[] https://stackoverflow.com/questions/7130474/3d-vector-field-in-matplotlib
[]http://web.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/AGV/DemoFiles/
ScriptFiles/html/Part8_VectorFields.html
[]https://matplotlib.org/1.5.1/mpl_toolkits/mplot3d/tutorial.html
[] http://www.geocities.jp/hp_yamakatsu/python01.html
[] https://matplotlib.org/2.0.0/examples/mplot3d/wire3d_demo
[] http://maths-with-python.readthedocs.io/en/latest/06-numpy-plotting.html
[]https://matplotlib.org/gallery/mplot3d/wire3d_animation.html
[] https://matplotlib.org/examples/animation/basic_example.html
[] https://matplotlib.org/examples/color/named_colors.html
[] https://www.geeksforgeeks.org/python-basic-gantt-chart-using-matplotlib/
[]https://matplotlib.org/3.1.0/gallery/pie_and_polar_charts/nested_pie.html
[]https://matplotlib.org/3.1.1/gallery/mplot3d/voxels.html#sphx-glr-gallery-
mplot3d-voxels-py
[]https://stackoverflow.com/questions/61644978/how-can-i-plot-a-cat-in-
matplotlib-using-voxels
[]https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.html
[]https://matplotlib.org/gallery/shapes_and_collections/scatter.html#sphx-glr-
gallery-shapes-and-collections-scatter-py
[]https://matplotlib.org/gallery/lines_bars_and_markers/scatter_symbol.html#
sphx-glr-gallery-lines-bars-and-markers-scatter-symbol-py
[]https://stackoverflow.com/questions/19068862/how-to-overplot-a-line-on-a-
scatter-plot-in-python
[] https://matplotlib.org/examples/pylab_examples/annotation_demo2.html
[] https://matplotlib.org/users/annotations.html

595
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
Pandas
[] https://chrisalbon.com/python/pandas_dataframe_importing_csv.html
[] https://stackoverflow.com/questions/42101382/pandas-dataframe-assign-
arguments
[] https://pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html
[] https://pandas.pydata.org/pandas-docs/stable/10min.html#min
[]https://pandas.pydata.org/pandas-
docs/stable/generated/pandas.read_csv.html#pandas.read_csv
[] http://pythonforengineers.com/introduction-to-pandas/
[] https://www.python-course.eu/pandas.php
[]https://pandas.pydata.org/pandas-
docs/stable/generated/pandas.DataFrame.sample.html
[] https://pythonprogramming.net/python-2-7-pandas-data-analysis/
[] https://towardsdatascience.com/using-the-pandas-data-frame-as-a-
database-282edec5a3ab
[] https://jingwen-z.github.io/data-viz-with-matplotlib-series3-pie-chart/
[] https://colorswall.com/palette/31501/
[] https://datascienceplus.com/matplotlib-library-tutorial-with-examples-
python/
[] https://www.edureka.co/blog/python-matplotlib-tutorial/
[]https://matplotlib.org/3.1.1/gallery/lines_bars_and_markers/stackplot_demo
.html
[] https://python-tricks.com/stack-plots-in-matplotlib/
[] https://www.machinelearningplus.com/plots/python-scatter-plot/
[] https://www.teacherspayteachers.com/Product/Linear-Regression-and-the-
Correlation-Coefficient-Math-1-3037752
[] https://provingground.io/2017/08/01/machine-learning-with-lunchboxml/
[] How do I store different data types in a NumPy array in Python?
https://www.quora.com/How-do-I-store-different-data-types-in-a-NumPy-
array-in-Python

596
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[] Python | Pandas.to_datetime()
https://www.geeksforgeeks.org/python-pandas-to_datetime/
[] pandas.to_datetime
https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.to_datetime.html
[] Pandas Time series / date functionality
https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html

[] pandas.Series.dt.tz_convert
https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.Series.dt.tz_convert.html
[]https://naomi-fridman.medium.com/learn-pandas-with-election-data-
3d9d8465f943
[]https://medium.com/data-science-tr/python-ile-zaman-serisi-analizi-1-
75b5f7d38356
[]https://www.datacamp.com/community/tutorials/time-series-analysis-
tutorial?utm_source=adwords_ppc&utm_campaignid=1455363063&utm_adgr
oupid=65083631748&utm_device=c&utm_keyword=&utm_matchtype=b&utm
_network=g&utm_adpostion=&utm_creative=278443377095&utm_targetid=a
ud-392016246653:dsa-
473406571155&utm_loc_interest_ms=&utm_loc_physical_ms=1012782&gclid
=CjwKCAiA7939BRBMEiwA-hX5J16T6v47j-
5tKAZ4rzZpXXAOuq6ghTYnf5JBWVg2ngAe4jZ1G8yiwRoCTUsQAvD_BwE
[] https://pythonexamples.org/modulenotfounderror-no-module-named-
openpyxl/

[] https://www.journaldev.com/33478/pandas-dataframe-apply-examples
[] https://www.geeksforgeeks.org/apply-function-to-every-row-in-a-pandas-
dataframe/

597
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[] https://www.journaldev.com/33306/pandas-read_excel-reading-excel-file-
in-python
[]https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.DataFrame.apply.html
[]https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.DataFrame.to_json.html
[] https://www.json.org/json-en.html
[] https://datatofish.com/export-pandas-dataframe-json/
[] https://pandas.pydata.org/pandas-docs/stable/visualization.html
[] https://stackoverflow.com/questions/31674557/how-to-append-rows-in-a-
pandas-dataframe-in-a-for-loop
[] https://stackoverflow.com/questions/42101382/pandas-dataframe-assign-
arguments
[] https://stackoverflow.com/questions/42101382/pandas-dataframe-assign-
arguments
[]https://pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html
[]https://pandas.pydata.org/pandas-docs/stable/10min.html#min
[]https://chrisalbon.com/python/pandas_dataframe_importing_csv.html
[]https://stackoverflow.com/questions/11285613/selecting-multiple-columns-
in-a-pandas-dataframe
[]https://pandas.pydata.org/pandas-
docs/stable/generated/pandas.read_csv.html#pandas.read_csv
[]http://pythonforengineers.com/introduction-to-pandas/
[]https://pandas.pydata.org/pandas-
docs/stable/generated/pandas.DataFrame.sort_values.html
[]https://stackoverflow.com/questions/19482970/get-list-from-
pandas-dataframe-column-headers
[] https://github.com/gjbex/training-material/tree/master/Visualization/Csv

599
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
Seaborn
[] "SeaBorn: Visualizing regression models"
https://seaborn.pydata.org/tutorial/regression.html
[] "Comparing Python Data Visualization Tools: Matplotlib vs Seaborn"
https://analyticsindiamag.com/comparing-python-data-visualization-tools-
matplotlib-vs-
seaborn/#:~:text=Matplotlib%3A%20Matplotlib%20is%20mainly%20deployed,h
as%20easily%20interesting%20default%20themes.
[] "Data Visualization with Python and Seaborn — Part 4: LM Plot & Reg Plot"
https://medium.com/@neuralnets/data-visualization-with-python-and-
seaborn-part-4-9b0119887130
[] "Seaborn: Python's Statistical Data Visualization Library"
https://www.datacamp.com/community/tutorials/seaborn-python-
tutorial?utm_source=adwords_ppc&utm_campaignid=1455363063&utm_adgr
oupid=65083631748&utm_device=c&utm_keyword=&utm_matchtype=b&utm
_network=g&utm_adpostion=&utm_creative=332602034361&utm_targetid=a
ud-392016246653:dsa-
473406580275&utm_loc_interest_ms=&utm_loc_physical_ms=1012782&gclid
=Cj0KCQiAqdP9BRDVARIsAGSZ8AnhGbMypdOCN1I2Sc_pKjDnYjk1ggCo0ad2kt6
68n4Jv9yywZ5wLmQaAtNGEALw_wcB
[] "seaborn.heatmap"
https://seaborn.pydata.org/generated/seaborn.heatmap.html
[] "How to Create a Matrix Plot in Seaborn with Python"
http://www.learningaboutelectronics.com/Articles/How-to-create-a-matrix-
plot-in-seaborn-with-Python.php
[] “Seaborn Library for Data Visualization in Python: Part 2”
https://stackabuse.com/seaborn-library-for-data-visualization-in-python-part-
2/
[] "Density plot with shade | seaborn"
https://python-graph-gallery.com/71-density-plot-with-shade-seaborn/
[] "Python Seaborn Tutorial"
https://www.journaldev.com/18583/python-seaborn-tutorial
599
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
[] "Pandas & Seaborn - A guide to handle & visualize data in Python"
https://tryolabs.com/blog/2017/03/16/pandas-seaborn-a-guide-to-handle-
visualize-data-elegantly/
[] "Plotting a diagonal correlation matrix"
https://seaborn.pydata.org/examples/many_pairwise_correlations.html
[] "Matrix plots in Seaborn"
https://www.geeksforgeeks.org/ml-matrix-plots-in-seaborn/
[] "Seaborn | Categorical Plots"
https://www.geeksforgeeks.org/seaborn-categorical-plots/?ref=rp
[] "Heatmap Basics with Seaborn"
https://towardsdatascience.com/heatmap-basics-with-pythons-seaborn-
fb92ea280a6c
[] seaborn.kdeplot kernel density estimate (KDE) plot
presents the data using a continuous probability density curve in one or more
dimensions.
https://seaborn.pydata.org/generated/seaborn.kdeplot.html
[] How to use Seaborn Data Visualization for Machine Learning
https://machinelearningmastery.com/seaborn-data-visualization-for-machine-
learning/

600
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
Python GUI Design
Görsel Programlama/Visual Programming: GUI Design: Menüler buttonlar
oluşturma, bunlara fonksiyon tanımlayıp atama
[] http://staff.washington.edu/rowen/TkinterSummary.html#StandardWidgets
[] https://www.python-course.eu/tkinter_entry_widgets.php
[] http://effbot.org/tkinterbook/menu.htm
[] https://www.tutorialspoint.com/python/tk_checkbutton.htm
[] https://www.tutorialspoint.com/python/tk_scrollbar.htm
[] https://www.python-course.eu/tkinter_message_widget.php
[] https://www.tutorialspoint.com/python3/tk_messagebox.htm
[] http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm
[] https://www.python-course.eu/tkinter_text_widget.php
[] https://www.python-course.eu/tkinter_labels.php
[] https://stackoverflow.com/questions/2744795/background-color-for-tk-in-
python
[] https://stackoverflow.com/questions/4969543/colour-chart-for-tkinter-and-
tix
[] https://www.tutorialspoint.com/python/tk_colors.htm
[] https://mail.python.org/pipermail/tkinter-discuss/2014-
October/003670.html
[] http://zetcode.com/gui/tkinter/layout/
[] https://stackoverflow.com/questions/34276663/tkinter-gui-layout-using-
frames-and-grid
[] https://www.tutorialspoint.com/python/tk_frame.htm
[] http://effbot.org/tkinterbook/entry.htm
[] https://www.python-course.eu/tkinter_entry_widgets.php
[] https://www.tutorialspoint.com/python3/tk_messagebox.htm
[] http://effbot.org/tkinterbook/button.htm

601
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
Python DNA ve Biopython DNA
[] https://stackoverflow.com/questions/19521905/translation-dna-to-protein
[] https://stackoverflow.com/questions/46620091/compare-two-sequences
[] https://stackoverflow.com/questions/46647033/dna-sequence-into-feature
[] http://hplgit.github.io/bioinf-py/doc/pub/bioinf-py.html
[] http://woldlab.caltech.edu/~king/mussagl_manual/
[] https://www.biostars.org/p/225913/
[] https://github.com/mspopgen/pqgen/blob/master/share/codon2aa
[] https://www.britannica.com/science/genetic-code#ref6654
[] http://www.nedirnedemek.com/codon-nedir-codon-ne-demek
[] https://scipython.com/book/chapter-8-scipy/examples/dna-diffraction-
pattern/
[]https://www.safaribooksonline.com/library/view/elegant-
scipy/9781491922927/ch01.html
[] http://nbviewer.jupyter.org/github/maayanlab/Zika-RNAseq-
Pipeline/blob/master/Zika.ipynb
[] https://stackoverflow.com/questions/39779488/transform-dna-alignment-
into-numpy-array-using-biopython
[]“Handling sequences with the Seq class”
http://biopython.org/wiki/Seq
[] http://biopython.org/DIST/docs/tutorial/Tutorial.html
[] “Biopython Tutorial ”
Je Chang, Brad Chapman, Iddo Friedberg, Thomas Hamelryck,
Michiel de Hoon, Peter Cock, Tiago Antao, Eric Talevich, Bartek Wilczynski
Last Update { 10 July 2017 (Biopython 1.70)

602
Python ile Kodlama II: Python Bilim Paketi N.Derya Varol
Numpy, Scipy, Matplotlib ve Pandas
Diğer
[] “Machine Learning using Logistic Regression in Python with Code”
https://becominghuman.ai/machine-learning-using-logistic-regression-in-
python-with-code-ab3c7f5f3bed
[] Data Visualization with Seaborn
https://www.kaggle.com/saduman/eda-and-data-visualization-with-seaborn
[] https://towardsdatascience.com/from-the-bridge-to-tasks-planning-build-
gannt-chart-in-python-r-and-tableau-7256fb7615f8

[] Tensorflow Tensörlere Giriş


https://www.tensorflow.org/guide/tensor
[] Tensorflow tf.rank
https://www.tensorflow.org/api_docs/python/tf/rank
[] MAT-File Level 5 File Format
https://www.loc.gov/preservation/digital/formats/fdd/fdd000440.shtml
[] Python - Dictionary
https://www.tutorialspoint.com/python/python_dictionary.htm
[] Python Dictionary
https://www.programiz.com/python-programming/dictionary
[] https://machinelearningmastery.com/introduction-to-tensors-for-machine-
learning/
[] http://python-reference.readthedocs.io/en/latest/docs/dict/itervalues.html

[] https://stackoverflow.com/questions/56150437/how-to-plot-a-time-series-
graph-using-seaborn-or-plotly/56151532

603

You might also like