NumPy projesi

Bu sayfa, Google Dokümanlar Sezonu için kabul edilen bir teknik yazı projesinin ayrıntılarını içerir.

Proje özeti

Açık kaynak kuruluşu:
NumPy
Teknik yazar:
cooperrc
Projenin adı:
Topluluk Eğitimi için NumPy Belgeleri
Proje süresi:
Standart uzunluk (3 ay)

Proje açıklaması

Giriş

NumPy, ücretsiz bir açık kaynak yazılım kitaplığında temiz ve hızlı dizi tabanlı bilgi işlem sunar. Bu, bilimsel işlem için SciPy yığınında temel bir pakettir [1]. Verimli dizi bilişimi için 370 binden fazla proje kullanılıyor [2]. NumPy kullanıcıları, uygulamalar ve örnek olaylar [1] içeren yeni bir web sitesi ile karşılanıyor. Yeni bir kullanıcı dokümantasyon sayfasını bulduğunda, NumPy Temelleri/bayt değiştirme gibi yeni başlayanlar için bunaltıcı olabilecek birden çok "Buradan Başla" bağlantısı ve tanıtıcı eğiticilerle karşılaşır. NumPy'yi on yıl önce lisansüstü kullanmaya başladım. NumPy belgelerini gözden geçirmekten kaçınmak için kendimi blog yayınlarını, ders notlarını ve StackExchange yanıtlarını bir araya getirirken buldum. Şu anda NumPy ile ilgili 360 binden fazla StackExchange görüşmesi var. Başka kullanıcıların da NumPy'de benzer bir başarı elde ettiğini düşünüyorum. Eğitim araçlarının yapı taşları iletişim ve topluluktur [4]. Belgeleme projenin istenen hedeflerini yansıtan bir topluluk oluşturmalıdır. Dokümanlar yeni kullanıcılar için tutarlı ve net bir kılavuz olmalıdır. Eğiticiler, yeni kullanıcılara uygulanması kolay adımlar sunmalı ve kütüphaneyi rahatça kullanabilmelidir [3]. Bu doküman, NumPy topluluğuna yeni bir kullanıcıyı davet etmelidir. Yapının, temponun ve belgelerin yazarlarının keşif ve iletişime açık bir ortam yaratması gerekiyor. Bu teklif, yeni kullanıcıların eğitim almasını ve topluluğa kabul edilmesini sağlamak için mevcut NumPy dokümanlarındaki boşlukları düzenleyip dolduracaktır.

Kullanıcıların iletişim kurduğu bilgi, testler ve denemeler yaparak kazanılır [4,5]. Bilgi, test ve değerlendirme yöntemine bağlıdır. "Nasıl yapılır?" videolarında net hedefler ve uygulamalar sunan içerikler, kullanıcıların yeni fikirleri ve yöntemleri test edip değerlendirmesini sağlar. Topluluk bir bilgi tabanı oluşturarak becerileri, bilgileri ve uygulamaları geliştirebilir. "Nasıl yapılır?" alanı iki açıdan avantajlıdır. İlk olarak, yeni ve deneyimli kullanıcıların test etmek ve deneme yapmak için kullanacakları bir dizi net hedef vardır. İkinci olarak, belgelere katkıda bulunan potansiyel kullanıcılar hedeflerini, yöntemlerini ve çözümlerini iletmek için kullanabilecekleri bir alana sahip olurlar. "Nasıl yapılır?" alanı, NumPy'nin belgelerini yeni kullanıcılar ve olası katkıda bulunanlar için daha erişilebilir hale getirme ihtiyacını ortadan kaldırıyor. Mevcut Bilgi

John Dewey, öğrenmenin temelinde gerçek bir deneyim olduğunu söylüyor [4]. NumPy topluluğu, diğer kullanıcılarla paylaşılabilecek muazzam bir gerçek deneyime sahip. Eğitim, topluluk ve iletişim üzerine kuruludur. Düzenli bir dokümantasyon sayfası, yeni kullanıcıların NumPy deneyimini yaşamasının yolunu açıyor. Ayrıca potansiyel katkıda bulunanların NumPy ile deneyimlerini iletmesi için yapılandırılmış bir şablon da oluşturur.

Yazılım belgeleri için geniş bir şekilde gruplandırılmış dört alan vardır [3]: eğitim alanı, "nasıl yapılır" alanı, açıklama alanı ve referans alanı. NumPy dokümanlarında, eğitim alanında açıklama ve "nasıl yapılır" alanı içeriğini eğitici içerikle birleştiren birçok doküman bulunur. Eğitim alanı, kullanıcı eğitimine odaklanmalı ve fikirleri iletmek için tekrarlanması kolay adımlar kullanmalıdır. "Nasıl yapılır?" alanı, kullanıcıların gerçek dünyadaki uygulamalarda uygulayabileceği daha hedef odaklı prosedürler sağlar. Açıklama alanı, her işlev için ayrıntılı doküman-dizeleri sağlar. Mevcut eğitim ve "Nasıl yapılır?" alanları net bir şekilde açıklanmamış ve bazen açıklama ve referans alanına giriliyor. “Mutlak Başlangıç” için mükemmel bir eğitim bulunmaktadır ve Matlab kullanıcılarının “Matlab kullanıcıları için Numpy” içinde NumPy kodu oluşturmaları için mükemmel bir referans vardır. Bu dört alanı net bir şekilde tanımlamak, belgeleri daha açık hale getirir.

Bilgi Tabanında Boşluk/Karşılanmayan İhtiyaç

Mevcut belgeler gerekli birçok konuyu kapsasa da eğitim, nasıl yapılır, açıklama ve referans alanları arasında net bir ayrım yoktur. Bu durum, potansiyel katkıda bulunanlar için kafa karışıklığına neden olur. Yeni kullanıcılar, eğitim bölümündeki açıklamalardan ve referans materyallerinden bunalabilir ve potansiyel katkıda bulunanlar, katkıda bulunma konusunda bazı engellerle karşılaşıyor. Hem yeni başlayanlar hem de olası belge katkıda bulunanlar için dokümanlarda mantıksal bir akış ve yeni katkıda bulunanların kullanıcı katkısıyla hazırlanan "nasıl yapılır" dokümanları için pull isteklerini yönetme konusunda daha erişilebilir bir düzen öneriyorum. Uzun vadeli hedefim, belgelerden öğrenmenin öğretilip konuşulan bir deneyim olması için bir belgeleme topluluğu oluşturmak. Bu belgeleme modeli, yeni gelenler ve katkıda bulunabilecek potansiyeller için eğitimin gerçek deneyimini temel alacaktır.

Gerekçe

Google Summer of Docs teklifi pedagojik ve kariyer hedeflerim açısından önemli. Tüm kurslarımda NumPy ve SciPy'yi kullanıyorum. Öğrencilerimin mevcut dokümanlarda gezinmesi zor. Bilgisayar bilimleri anadalında olmayan kişilere kodlama öğretme tecrübemi kullanmak istiyorum. Bu sayede mevcut eğitimlerde düzenleme, düzenleme ve boşlukları doldurma konusunda yardım almak istiyorum. Böylece bu belgeleri ders kitabı ve kurslarım için referans malzeme olarak kullanabilirim. Python ve kullanarak onlarca eğitici, alıştırma ve örnek hazırladım. Bu materyallerin bir kısmını eğitici içeriklere ve "Nasıl yapılır?" kılavuzlarına dönüştürmek istiyorum. NumPy (Scipy yığınının bir parçası olarak) kullanan 800'den fazla öğrencim oldu ve sonbahar sömestirinde belgelemeye katkıda bulunmak isteyen birden çok öğrencim var. 4 yıldır Connecticut Üniversitesi'nde Makine Mühendisliği bölümünde öğretmenim ve 30 saatin üzerinde kredi verdiği kurslar verdim.

Belirli Hedefler

Google Dokümanlar Yaz teklifiyle ilgili olarak üç özel amacım var: 1. Mevcut belgeleri düzenleyin, 2. Referans bilgilerini Açıklama Alanı'na taşımak için mevcut eğiticileri (Başlangıç Kılavuzu, Dizi Oluşturma, Dizine Ekleme, Doğrusal Cebir ve Matlab için NumPy) düzenleyin ve 3. Öğrencilerle "Nasıl yapılır?" materyalleri oluşturun. Her bir amacın teklif için beklenen bir sonucu vardır.

Bu üç özel amacın amacı, belgeleri yeni kullanıcılar için daha cazip hale getirmek ve potansiyel katkıda bulunanlar için bir yapı oluşturmaktır. Amaçlar, uzun vadeli NumPy dokümantasyon topluluğunu büyütmeye devam etme hedefine ulaşmak için de yardımcı olmak. Beklenen sonuçlar

Aşağıdaki gibi üç sonuç almayı bekliyorum: 1. Dört alanı net bir şekilde ayıran gözden geçirilmiş bir dokümantasyon web sayfası: eğiticiler, nasıl yapılır, açıklama ve referans; 2. dizi okuma ve yazma, dizi oluşturma (np.zeros, np.ones, np.block vb.) ve NumPy ile öğe bazında ve doğrusal cebir işlemi ve 3. özel bir nasıl yapılır alanı.

Bu beklenen sonuçlar, yeni kullanıcıların dokümanlarda ilerlemesine yardımcı olacak, dokümanlara katkıda bulunan potansiyel kullanıcılara açık stil ve biçimler sağlayacak, mevcut eğitimleri kısaltıp takip edilmesini kolaylaştıracak, açıklamaları ayrı bir bölüme taşıyacak ve yeni dokümanlara katkıda bulunanlar, tüm Sfenks belgelerini oluşturmadan küçük kullanım alanlarına katkıda bulunabilecek. Eğitim ve öğrenim topluluğumuzu büyütmeye devam etmek istiyoruz.

Katkıda bulunan yeni dokümanlar, Sfenks belgelerinin tamamını oluşturmak zorunda kalmadan milyonlarca kullanıcının küçük kullanım alanlarına katkıda bulunabilir. Eğitim ve öğrenim topluluğumuzu büyütmeye devam etmek istiyoruz. Önerilen bu dokümanlar Matplotlib, Divio vb. mevcut açık kaynak dokümanları taklit eder. Yeni kullanıcılar ve potansiyel katkıda bulunanlar, NumPy'yi kendi alanlarına ve yazılımlarına uygulamayı daha kolay öğrenebilirler.

Projenin takvimi 14 Eylül ile 30 Eylül arasında şeklinde belirlenmiştir. İlk adım, dokümanları oluşturmak ve mevcut eğiticilerin içeriğini Eğitim, Nasıl Yapılır ve Açıklama içeriklerine ayırmaktır. Bu, sırasıyla Web sitesi ve eğiticilerin revize edilen Sonuçlar 1 ve 2 kapsamında projenin ilk beş haftasında tamamlanacaktır. Önerilen Belge kuruluşu, aşağıdaki Önerilen Belgeler'de gösterilmektedir.

Önerilen Belgeler:

i.Tutorials:

  • Yeni başlayanlar için mutlak temel bilgiler (yüklemeyi kaldırın, pandas içe/dışa aktarma numpy.loadtxt ile değiştirilebilir mi?)
  • “Numpy nedir” bağlantısı
  • temel kurulum talimatlarının bağlantısını burada bulabilirsiniz
  • Hızlı Başlangıç Eğitimi (Python eğitimini takip etmek içindir)
  • NumPy dizileriyle çalışma
  • dizi oluşturma (np.zeros, np.ones, np.block vb.) (yazma: med-düşük öncelikli)
  • öğe bazında işlemler (+,-,*,/) ve doğrusal cebir işlemleri (+,-,@, linalg.solve) (write:med önceliği)
  • Numpy kullanarak veri okuma ve yazma (yazma: yüksek öncelikli)
  • Dizine ekleme

ii. "Nasıl yapılır?" videoları:

  • n boyutlu dizilerde Lineer Cebir (başlıkları ve açıklamaları düzenlemek ve belki başlığı "Numpy’nin doğrusal cebiriyle Resim işleme" olarak değiştirmek isterim)
  • numpy-tutorials "nasıl yapılır" içeriğine bağlantı (sürekli çalışma)

iii. Açıklama:

  • Veri türleri
  • Numpy ile G/Ç
  • Dizine ekleme
  • Yayınlama
  • Bayt değiştirme
  • Yapılandırılmış diziler
  • Özel dizi kapsayıcıları yazma
  • ndarray alt sınıfı
  • Çeşitli

iv. Referans Alanı:

  • Sözlük
  • Numpy API Referansı
  • Matlab kullanıcıları için Numpy (denklik tablosu harika bir başvuru tablosudur, ancak dizi/matris tartışması dikkat dağıtıcıdır ve kullanımdan kaldırılmış gibi görünür)

Bu Google Dokümanlar Sezonunu tamamladıktan sonra aşağıdaki sonuçları öneriyorum:

  • Eğiticiler, Nasıl Yapılır, Açıklama ve Referans olmak üzere dört alanı net bir şekilde ayıran düzeltilmiş bir Dokümantasyon Web Sayfası
  • Dizi oluşturma (np.zeros, np.ones, np.block vb.), öğe tabanlı işlemler (+,-,*,/) ve doğrusal cebir işlemleri (+,-,@, linalg.solve) ve Numpy (yüksek öncelikli) kullanarak veri okuma ve yazma konuları için yeni Eğiticiler
  • Kullanıcı katkılarını artırmak ve topluluğun eğitim ve öğrenim hedeflerini daha ileriye taşımasına yardımcı olmak için nasıl yapılır belgeleri önerdi

Her sonucun, aşağıdaki Sonuçlar 1-3 arasındaki tablolarda ana hatlarıyla açıklanan bir dizi adımı vardır. Önerilen Belgeler incelemeye gönderilirken, yüksek öncelikli "Dizileri okuma/yazma" eğitimi, Sonuç 2'nin parçası olarak pull isteği olarak gönderilmek üzere yazılır. Düzeltilen web sitesinin ve güncellenen "Dizi Okuma/Yazma" eğiticisinin incelenmesi sırasında, np.ones, np.zeros, np.diag gibi NumPy işlevlerini kullanarak dizi oluşturmak için bir eğitim yazmaya başlayacağım. Kalan süre, çekme isteği sorunlarını yanıtlamak ve 3. sıralama eğiticisini yazmaya başlamak için kullanılır: Python'da öğe düzeyinde ve doğrusal cebir işlemleri.

Üçüncü sonuç, Connecticut Üniversitesi'ndeki öğrencilere numpy-tutorials veri havuzunda belge oluşturmalarını tavsiye etmektir. Gönderilen eğiticiler veya "Nasıl Yapılır?" belgeleri, mühendislik sorunlarını çözmek için NumPy kullanan Jupyter not defterleri olacaktır. Örnek bir defter göndermek için bazı ders notlarımdan/örneklerimden yararlanacağım. Öğrencilere, bir şablon ve çerçeveleme planı oluştururken düzen ve yapıyı uygulamalarını tavsiye edeceğim. Bu sonuç, öğrencilere kavramları ve çözümleri daha geniş bir kitleye iletmeleri için gerçek bir deneyim sunuyor. Bu, öğrencilerin NumPy topluluğuna dahil olmaları ve öğrenmeleri için harika bir fırsattır.

Sonuç 1: Web sitesinin Yayınlanma Tarihini Düzenleme

2: Eğiticileri Düzeltin Teslim Tarihi Eğitimlerin düzeltme sıralamasını inceleyin

Önerilen eğitim düzeltmelerinin sıralaması (Mentorlara/topluluğa göre değişebilir):

  1. Şu anda boş olan dizi okuma/yazma sayfası

  2. Dizi oluşturma (np.zeros, np.ones, np.block vb.) Yok: Yeni kullanıcıların ortak dizi oluşturma/etkileşim araçlarını açıklama ve göstermelerine yardımcı olur

  3. Element düzeyinde ve doğrusal cebir işlemleri (+,-,*,/ ve +,-@,linalg.solve) yoktur: Bu, özellikle 1 için yararlıdır. Matlab kullanıcıları ve 2. Doğrusal cebir (makine öğrenimi, doğrusal regresyon vb.) deneyenler

3: Seçilen Nasıl yapılır alanı Teslimat Tarihi Harici Bağlantısı(sorun/örnek) Nasıl yapılır örneği (aday: Gitar tellerinin doğal frekanslarını bulma 10/20)
Yeni katkıda bulunanlar için Nasıl yapılır şablonu oluşturun 10/1'de devam ediyor Eğitim şablonu Öğrencilerle ilgili bilgiler ve Çerçeveleme Olası katkılar Ulusal Not defterleri oluşturma ve onaylı topluluk üyeleri oluşturmak için diğer katkıda bulunanlarla birlikte çalışma ve Nasıl yapılır, not defterleri ve işe alma başvuruları

Beklenen Anlamlılık

Bu Google Dokümanlar Yazısı teklifi , NumPy dokümanını hazırlayacak, web sitesindeki eksik eğiticileri dolduracak ve dokümanlara katkıda bulunanlar kazanacak. Makine Mühendisliği bölümünde profesör olarak, dokümanları öğrencilerimin belgelerde gezinebileceği ve uygulamalı "nasıl yapılır" kılavuzlarına kıyasla tanıtıcı eğitimleri kolayca bulabileceği şekilde segmentlere ayırmayı planlıyorum. Bölümlere ayrılmış dokümanlar: Eğitim, "Nasıl Yapılır?", referans ve açıklama bölümü, yeni kaynaklar oluşturmak için potansiyel katkıda bulunan kullanıcılara yönelik yapılandırılmış örnekler sunar. Önerilen dokümanlar, yeni ve deneyimli kullanıcılar için bilgi ve iletişim deneyimi sunarak verilme ve etkileşim imkanı sağlar. Connecticut Üniversitesi öğrencilerine tavsiye niteliğindeki "nasıl yapılır" dokümanı, eğiterek ve paylaştığı bu fikri pratiğe aktaracaktır. Tüm kullanıcıların deneme yapmak, öğrenmek ve NumPy topluluğuna katılmak için alan bulmasını istiyoruz.

Referanslar

  1. NumPy.org web sitesi 07/2020'de erişti.
  2. NumPy GitHub deposu.
  3. Belgeleme Sistemi. Divio.com, 07.07.2020 tarihinde erişti.
  4. Demir, Cem. Demokrasi ve Eğitim. Gutenberg Projesi, Ağustos 2015.
  5. Demir, Cem. Certainty George Allen ve Unwin Limited için arayış. 06/2005.