Bu çalışmada matplotlib kullanarak animasyon yapmanın ne kadar kolay olduğunu göstermek istiyorum. Geçmişte, bu konuyla ilgili öğreticiler ve bilgiler aradım ve her zaman yetersiz kaldım. Örnekler bulduğumda, onları yorumlamakta zorlandım ve hiçbir şey yapışmamış gibi görünüyordu. Bu yüzden, başkalarının matplotlib GIF'lerini hızlı ve etkili bir şekilde yapmayı öğrenebileceği umuduyla bir dizi öğretici yapmaya karar verdim. Bu amaçla, bugünlerde çok fazla koronavirüs verisi bulunduğundan vaka incelemesi konu olarak SARS-CoV-2'yi seçtim.
Son iki yılda, yeni bir tür ortaya çıktığında, R-naught terimi - diğer adıyla R₀ veya üreme sayısı - tüm medyada ortaya çıkıyor. Bahse girerim bu noktada bunun ne anlama geldiğine dair bir fikrimiz vardır, ancak tanım , enfekte olmuş bir kişinin aşı, maske veya diğer koruyucu önlemlerin yokluğunda enfekte ettiği ortalama insan sayısıdır. Ölçülmesi zor bir sayıdır ve birçok değer önerilmiştir. Erken, 2020 baharında, insanlar atalara ait türün R₀ değeri hakkında 2 ile 6+ arasında değişen birçok tahminde bulundular; şimdi 2.5 civarında olduğunu düşünüyoruz [1]. Delta varyantı yaklaşık 5 R₀ değerine sahip görünüyorve biz hala Omicron'un ilk günlerindeyken, yaklaşık 10'luk bir R₀ değerine sahip olduğu tahmin edilmektedir [2].
Bulaşıcılıkta açıkça büyük bir fark var, ancak bunu nasıl görselleştirebiliriz? Önceki gönderilerde , görsel veriler söz konusu olduğunda insanların nasıl mükemmel kalıp bulucu olduklarını açıklamıştım. Görüntüleri yorumlamak bizim için sayı dizilerinden çok daha kolay. Bunu akılda tutarak, matplotlib kullanarak bu farklılıkları R₀'de nasıl görselleştireceğinizi açıklayacağım . Burada, viral yayılmanın GIF'lerini oluşturmak için FuncAnimation() 'ın nasıl kullanılacağını göstereceğim. İlk olarak, animasyonlu bir çizgi grafiğinin nasıl oluşturulacağına ve viral yayılma için temel, nokta tabanlı bir simülasyonun nasıl kurulacağına bakacağız. Bir sonraki makalede, bu temel kurulumu nasıl iyileştirebileceğimizi ve daha karmaşık animasyonlar oluşturabileceğimizi göreceğiz.
İşte ihtiyacınız olacak ithalatlar:
from matplotlib import pyplot as plt from matplotlib.animation import FuncAnimation from matplotlib.collections import PatchCollection from matplotlib.patches import Rectangle import random import numpy as np from scipy.spatial import Delaunay from matplotlib.lines import Line2D
Veri görselleştirme geçmişine bakmak ilginçtir ve Şekil 1, yukarıda Şekil 6 ve Şekil 7 olarak gösterilen çok erken birkaç çizgi grafiğini göstermektedir . Bu grafikler, suyun iki cam levha arasındaki kılcal hareketini göstermektedir. Bu biraz belirsiz, bu yüzden işte bu deneyin diğer iki örneği: 1 ve 2 . Çizgi grafikler bir dizi ilişki türünü görüntülemek için kullanılabilir, ancak burada zaman içinde bulaşma sayısındaki değişimi görüntülemek için bunları kullanabiliriz.
Zaman içinde enfeksiyon sayısındaki artışın görselleştirmelerini oluştururken, makul hat yörüngeleri oluşturmak için aşağıdaki kodu kullanabiliriz.
calc_y()İlk olarak, bir dizi adım (n) ve bir R₀ değeri (r) alan adında bir fonksiyon oluşturabiliriz . Her adımda aynı R₀'yi kullanmak yerine,
np.random.normal()R₀ ortalamalı normal dağılımdan bir değer döndürmek için işlevi kullanabiliriz. Bu daha iyidir çünkü üreme sayısı ortalamadır , bu nedenle enfekte olan her birey için farklı olacaktır.
Ardından, animasyonu oluşturabiliriz. Aşağıdaki kod,
FuncAnimation()animasyonlar oluşturmak için özel bir işleve geçmemize izin verir. Aşağıdaki kod oldukça basittir. Tüm yapılan
animation_func()0'dan 45'e kadar yineleme yapmak, 'den gelen çerçeveler argümanı
FuncAnimation()ve yukarıda açıklanan koda göre çizgiler çizmek. Farklı R₀ değerleri zaman içinde önemli ölçüde farklı sayıda enfeksiyona yol açtığından, değeri arttıkça her R₀ için bir tane olmak üzere çizgileri üç aşamada çizme işlevini yazdım
i. İlk 15 satır R₀'nin 1'e, sonraki 15'in R₀'nin 2'ye ve son 15'in R₀'nin 10'a karşılık gelecektir.
Figürü bir GIF'e yazmak için imagemagick kullandığımı unutmayın. Google colab'da çalışıyorsanız,
!apt-get install imagemagickçalışma zamanınıza yüklemek için çalıştırabilirsiniz, aksi takdirde sisteminizde kurulu olduğundan emin olmanız gerekir.
Yukarıdaki kod, aşağıdaki GIF'i oluşturmak için kullanıldı. 1, 2 ve 10'luk her R₀ için çizilmiş on beş çizgi olduğunu görebiliriz. Daha büyük R₀'lerin çizgilerinin ne kadar hızlı büyüdüğünü görmek şaşırtıcı ama şaşırtıcı değil.
Yorumsuz satır 10, y eksenini bir log ölçeğine dönüştürür, bu da enfeksiyon sayısındaki dramatik artışı daha da gösterir.
Bu çizgi grafikler, R₀ değeri 10 olan bir virüsün zaman içinde enfeksiyondaki hızlı artışını göstermektedir. Peki, bu bilgi gerçekten kalıcı mı? Önceki grafiğin y ölçeğinin bir günlük ölçeğine ayarlandığına ve mor çizgilerin ~10 milyonluk değerlere ulaştığına dikkat edin. Sezgisel olarak bu mantıklı. R₀ =10, her bir kişinin ortalama 10 kişiye bulaştığı anlamına geldiğinden, büyümenin 10'un katları şeklinde olmasını beklerdik. Ama bu, etrafta dolaşan büyük bir odada nasıl görünürdü ? Diyelim ki, Biogen konferansı gibi süper yayılan bir etkinlikte .
Mart 2020'de, The Washington Post'ta yukarıda anlattığıma benzer birkaç simülasyon gösteren bir makale yayınlandı. Karantina ve sosyal mesafe gibi faaliyetlerin yayılmayı nasıl yavaşlatabileceğini göstermek için tasarlandılar. R₀, WP simülasyonlarına hiç dahil edilmedi; bir nokta, yalnızca enfekte bir noktayla temasa geçerek enfekte oldu. Makaleye göz atmanızı tavsiye ederim çünkü bu simülasyonlar bu eğitim için ilham kaynağı oldu. Görselleştirmeler yayılmanın nasıl azaltılacağını göstermek için iyi bir iş çıkarsa da, farklı bir hedefimiz var: farklı R₀'ler ile farklı türlerin yayılmasını simüle etmek istiyoruz. Artık farklı suşlar için bu değerin tahminlerine sahip olduğumuza göre, bulaşıcılığın gerçek dünyadaki etkilerinin neler olabileceğini görselleştirebiliriz.
Soru şu ki, farklı R₀ değerleri altında viral yayılımı nasıl simüle ederiz? İlk planım, her biri küçük bir hıza ve bir duruma sahip, ya sağlıklı ya da enfekte olan bir grup noktaya sahip bir uçağı başlatmaktı. Bu noktalardan biri, 0 zamanında enfekte olmak üzere rastgele seçilecektir. Yayılmayı simüle etmek için, bu enfekte noktanın bulaştıracağı noktaların sayısı, yukarıda açıklanan işleme benzer şekilde, ortalama R₀ ile normal bir dağılımdan rastgele seçildi. Bu noktaların istatistikleri daha sonra sağlıklıdan enfekteye değiştirildi. R₀ etrafındaki normal dağılımdan virüslü bir nokta için bulaşma sayısını seçerek, ortalama olarak R₀ noktalarının virüslü her nokta tarafından enfekte olmasını sağlarız.
Yukarıda açıklanan yöntemin yanlış bir yaklaşım olduğu ortaya çıktı. Ana sorun, her artışta ~R₀ noktalarının enfekte olması ve bu noktaların virüslü bir noktaya en yakın noktalar olarak seçilmesiydi. Bu, aslında yakın oldukları anlamına gelmez. Daha da önemlisi, R₀ a priori belirlemek zarif değildir. Daha iyi bir çözüm, simülasyon ortamını istenen R₀'yi üretecek şekilde tasarlamaktır ve daha sonra yaptığım şey buydu. Bununla birlikte, simülasyonun animasyonu etkiliydi ve GIF'i üretmek için kullanılan kod aşağıda gösterilmiştir.
Bu yazıda matplotlib ve FuncAnimation kullanarak iki farklı türde animasyonun nasıl oluşturulacağını gösterdim. Bir sonrakinde, ikinci simülasyonu geliştirmeye daha derin bir dalış yapacağım. Kaçırmamak için beni takip etmeyi unutmayın! Bu çalışmayı beğendiyseniz, lütfen diğer makalelerime göz atın, bildirim almak için kaydolun ve Medium'a katılın .
1. Ying Liu, Joacim Rocklöv, SARS-CoV-2'nin Delta varyantının üreme sayısı, atalardan kalma SARS-CoV-2 virüsüne kıyasla çok daha yüksek, Journal of Travel Medicine , Cilt 28, Sayı 7, Ekim 2021, taab124 ,https://doi.org/10.1093/jtm/taab124
2. Talha Khan Burki, Omicron varyantı ve güçlendirici COVID-19 aşıları,
The Lancet Respiratory Medicine , Cilt 10, Sayı 2, 2022, Sayfa e17,
ISSN 2213–2600,https://doi.org/10.1016/S2213-2600(21)00559-2.
(https://www.sciencedirect.com/science/article/pii/S2213260021005592)
3. Hauksbee, Francis. Hiperbolik Şekilde İki Cam Düzlem Arasındaki Suyun Yükselişine Dokunan Bir Deneyin Hesabı. Bay Francis Hauksbee tarafından, FRS” Felsefi İşlemler (1683-1775) , cilt. 27, Kraliyet Cemiyeti, 1710, s. 539-40,http://www.jstor.org/stable/103171.
Bilinç nedir? Yüzyıllardır filozofların ve bilim adamlarının kafasını karıştıran bir sorudur. Bazıları bunun bedenlerimizden bağımsız olarak gerçekten anlayamadığımız geçici bir şey olduğunu söylüyor.
Yıllık ortalama 154 bin dolar maaş ve istikrarlı iş büyümesi ile şimdi blok zinciri geliştirmeyi öğrenmek için ideal zaman. Blok zinciri teknolojilerini oluşturmak ve geliştirmek için blok zinciri geliştiricileri, bilgisayar ağı, kriptografi, algoritmalar ve veri yapıları dahil olmak üzere çeşitli beceriler kullanır.
Jesenko ve benim 20 yıllık evlilik yolculuğumuza nasıl başladığımıza dair başlangıç hikayemizi pek kimse bilmiyor. Bazılarının, ilk dairemizi birlikte doldurmak için yeterince para kazanmamanın çok erken zamanlarıyla ilgili olabileceğinden eminim.
Bu ay tüm yeni abonelerimize ve yazarlarımıza sıcak bir karşılama; sürülerinizde ortaya çıkıyorsunuz ve bunun için size teşekkür ediyoruz. Burada harika bir topluluk oluşturuyoruz ve yorumlarınızı ve makalelerinizi okumak harika.
Güncel özet: Mevcut makro durum değişmeden kalsa da, faiz oranlarını artırma zamanı yaklaştıkça daha "öngörülü" fişler piyasadan çekilecek, ki bu normaldir. yatırımcılar üzerinde bir etki, bu etki sadece duygusal değil, aynı zamanda tüm Amerikalıları yiyecek, giyecek, barınma ve ulaşım gibi çeşitli yönlerden etkiliyor. İşte tam da bu nedenle daha fazla yatırımcı chiplerini borsalara önceden transfer ediyor veya önceden diplerde satmaya hazırlanıyor.Sadece faiz artırımından sonra trend üzerine bahse girmek istemiyorlar.Durum hala iyi, ancak sabah 6:45'te parçalandı ve şu ana kadar parçalandı. Bu, düşüşün duygusal tarafındaki panik ve iyi zamanlanmış. Ama yine de bir haftadır söyledim.Şu anda makro oyun koşulları büyük çaplı düşüş ve yükseliş trendini desteklemiyor.Faiz oranları ve GSYİH'nın tam olarak inmesi için genel şok düzenini değiştirmek zor. . Aslında her sabah Cumartesi ve Pazar günleri bu seviyede bir ezilme oluyor, daha iki gün önce yakalandı ve sonra hareket olmadı, bugün yakalanmadı ve ardından panikli bir takibi tetikledi. Bu sabah 10:00 itibariyle BTC pozisyonlarının fiyat dağılımı ve dün gece 23:00'ten bugüne veriler, bu sabahın erken saatlerinde başlayan ancak büyük bir artış görmeyen hızla yükselen ve ardından düşen düşüşü yaşadı. BTC adreslerindeki değişikliklerin sayısı Değişikliğin ölçeği, çünkü bu iniş ve çıkışların aşırı güçlü bir tepkiye neden olmayacağı, ancak borsada önceden depolanan çiplerin duygusal değişimlerinin daha fazla olacağı yargısına varılabilir. Her iki taraftaki aşırı fiyatlara bakılırsa, eskilerin elindeki BTC, hafta sonu boyunca hala normal dalgalanma aralığını izliyor, sadece 200 BTC'den fazlası bir bütün olarak piyasadan ayrılıyor, yüksek seviyede tutulan fişler büyük ölçüde dalgalanıyor, yaklaşık 51.000 $ civarında. Yaklaşık 1.900 BTC'lik BTC değişimi, ancak çapraz karşılaştırmadan sonra, en büyük olasılık hala borsaların değişiminden geliyor, bu nedenle aslında, yüksek seviyede kilitlenen fişlerin değişimi sadece 150'den az . Bu transfer dahil olsa bile, toplam kayıp yığınındaki 24.000 doların üzerindeki düşüş 4'ü geçmedi, 200 BTC Bu, ister kısa vadeli bir yükseliş, ister fiyatta düşüş olsun, en büyük oranı kaplayan kaybeden chiplerin tepki vermediği anlamına geliyor.Bu yüzden büyük ölçekli bir düşüş olmayacağına karar vermemin nedeni bu. Hafta sonları kalan düşük volatilite yerine adresler değişiyor. Üstelik, yalnızca erken dönem kâr ve zarar fişlerindeki değişiklikler azalmakla kalmıyor, mevcut anlaşmazlık fiyatı altındaki kısa vadeli işlem fişleri bile fazla yanıt vermedi ve hafta sonu genel satış baskısı hala düşük. Borsaya aktarılan BTC verisine bakılırsa, bu sabah saat 8:00 itibariyle satış baskısı gerçekten de düşmeye devam ediyor, bu da satış için güçlü bir isteklilik olmadığını gösteriyor. Ayrıntılı verilerde, 6:45'te düşmeye başlamasına rağmen, bu dönemde oluşan satış baskısının büyük olmadığı, sadece sabah 8:30'dan sonra ortaya çıkan güçlü satış baskısının olduğu da görülebiliyor. Borsaya aktarılan satış baskısı ile karşılaştırıldığında, borsadan çekilen para miktarı çok fazla değil.Genel satış baskısını karşılayabilse de, bu alım gücü seviyesi şokların durumunu değiştirmek için hala yeterli değil.Fiyat dalgalanıyor likiditenin düşük olduğu hafta sonları. Ayrıntılı verilerden, Pekin saatinden 8:00'den sonra satış baskısındaki artışla birlikte, para çekme sayısının da artmaya başladığı, ancak nispeten konuşursak, bazılarının hazırlıksız yakalandığı görülebilir. Bununla birlikte, genel oyun durumu açısından bakıldığında, satışta çok fazla fiş olmadığı ve satın alma gücü durmadığı için, aksine, aktif olarak satın alıyorlar ve karşılık gelen fişleri devre dışı bırakmaya devam ediyorlar. Bu aynı zamanda fonların reaksiyondan sonra satın alma arzusunun devam ettiğini, bu nedenle büyük ölçekli bir düşüşün gerçekleşmesinin zor olduğunu kanıtlıyor. Sarsıntı hala ana tema. Borsanın BTC hisse senedi verilerinden, hafta sonları düşük tiraj durumunda bile, borsadan kaybolmaya devam eden çok sayıda chip olduğu görülebilir, bu sadece satın alma gücünün çok daha yüksek olduğunu göstermez. satış baskısından ziyade, aynı zamanda mevcut ekonomik fraksiyonu temsil eder.Enflasyonda bir zirve ve fiyatlarda bir dip beklentileri. Hisse senedinin detaylı verilerinden sabah 8:00'den önce borsa hissesinin fiyat düşse bile sürekli düşüşte olduğu görülüyor. Saat sekizden sonra, tamamen farklıydı. Dolayısıyla fiyat düştüğünde genel satışın sabah 6:45'te başlamadığı, tam tersine şu anda daha büyük bir dalgalanma olmadığı açıkça görülüyor. Daha büyük ölçekli bir satış, ancak bu noktadan sonra duyarlılık tarafından yönlendirildi. Mevcut fon miktarının düşük olduğu ve taahhüt kapasitesinin yetersiz olduğu doğru olmakla birlikte, büyük çaplı panik satışlarını tetiklememiştir. Mevcut BTC sürekli sözleşme verilerine bakılırsa, fonlama oranı fiyat düşüşüyle düşüşe geçmedi, bunun yerine büyük ölçekli bir yükseliş hissiyatı var, bu da mevcut hissiyatın daha fazla olduğunu gösteriyor Yatırımcılar bunun sadece aşamalı bir düşüş olduğuna inanıyor. ve ABD enflasyonu zirveye ulaştığında BTC hala dibe vuracak. Aslında, bugünün düşüşü için bir neden yok ve bu sadece hissiyattaki düşüş eğiliminden kaynaklanmıyor çünkü bu Cuma BTC ve ETH opsiyonlarının aylık teslimatı olacak çünkü önceki aylar düşüşte.Durum, fiyat teslimattan önce her zaman en büyük acı noktasından uzaktır, bu nedenle opsiyon teslimatına dikkat eden çok daha az küçük ortak var, özellikle opsiyon satıcıları güçsüz ve bu ay farklı. Temmuz sonunda, BTC opsiyonlarının en büyük acı noktası 23.000 ABD doları ki bu tam olarak bu sabahki düşüşten önceki fiyat.Önceki aylardaki yaklaşık 10.000 ABD doları açıkla karşılaştırıldığında, bu ay aslında bu fırsatı yakalama fırsatı var. en büyük acı noktasına ulaşmak ve aynı zamanda en uzun-kısa oyun yoğun bir durumdur. Mevcut kısa-uzun oran 0,83 ve boğalar küçük bir aralıkta liderliğini sürdürüyor.Mevcut açık opsiyonlar 76.654 ve beklenen miktar yaklaşık 1,7 milyar ABD doları. Dolayısıyla rekabet daha yoğun olacak. ETH'nin en büyük acı noktası sadece 1400 dolar.Mevcut fiyat, son aylarda nadir görülen en büyük acı noktasından hala daha yüksek.Kısa-uzun oranı bile son aylarda 1'den 0'a düştü.
Sathya Krishnan Suresh, Shunmupapriya P Bu yazıda, stili ve içeriği iki ayrı görüntüden gelen yeni görüntüler oluşturmak için kullanılabilecek bir yöntem olan “Nöral Stil Transferi” adlı ilginç bir konuyu tartışacağız. Bu makale Leon A Gatys ve arkadaşlarının A Neural Algorithm of Artistic Style (Sanatsal Stilin Sinirsel Algoritması) temel alınarak hazırlanmıştır; burada yazar, Evrişimsel Sinir Ağı (CNN) katmanlarını kullanarak yeni bir görüntünün oluşturulması hakkında ayrıntılı bir açıklama sunar.