NumPy projesi

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

Proje özeti

Açık kaynak kuruluşu:
NumPy
Teknik yazar:
cooperrc
Proje 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 yer alan temel bir pakettir [1]. 370 binden fazla projede verimli dizi bilişimi kullanılıyor [2]. NumPy kullanıcıları, uygulamalar ve örnek olaylar içeren yeni bir web sitesiyle karşılanıyor [1]. Dokümantasyon sayfasını bulan yeni bir kullanıcı, NumPy ile İlgili Temel Bilgiler/bayt değiştirme gibi yeni başlayanlar için bunaltıcı olabilecek birden çok “Buradan Başlayın” bağlantısı ve tanıtım eğiticileriyle karşılaşır. NumPy'yi on yıl önce lisansüstü eğitimde 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 ileti dizisi var. Başka kullanıcıların NumPy'de de benzer başarı yollarına sahip olduğunu 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 rahatlatmalıdır [3]. Bu dokümanlar, NumPy topluluğuna yeni bir kullanıcıyı dahil etmelidir. Yapının, hızın ve belgelerin yazarlarının keşif ve iletişime açık bir yer oluşturması gerekir. Bu teklif, yeni kullanıcıların eğitim alması ve topluluğa kabul edilmesi için mevcut NumPy dokümanlarındaki boşlukları düzenleyecek ve dolduracaktır.

Kullanıcıların iletişim kurduğu bilgi, testler ve denemelerle kazanılır [4,5]. Bilgi, test ve değerlendirme yöntemine bağlıdır. "Nasıl yapılır?" kılavuzunda net hedefler ve uygulamalar sunan içerikler, kullanıcıların yeni fikirleri ve yöntemleri test edip değerlendirmelerine olanak tanır. Topluluk bir bilgi tabanı oluşturabilir; becerileri, bilgileri ve uygulamaları geliştirebilir. "Nasıl yapılır?" alanı iki farklı avantaj sağlar. Öncelikle, yeni ve deneyimli kullanıcıların test etmek ve deneme oluşturmak için net hedefleri vardır. İkincisi, belgelere katkıda bulunan potansiyel katılımcılar; hedeflerini, yöntemlerini ve çözümlerini iletmek için yeterli alana sahip olurlar. "Nasıl yapılır?" alanı, NumPy'nin belgelerini yeni kullanıcılar ve katkıda bulunabilecek kullanıcılar için daha erişilebilir hale getirme ihtiyacını ortadan kaldırıyor. Mevcut Bilgi

John Dewey, öğrenmenin temelinin gerçek bir deneyim olduğunu söyledi [4]. NumPy topluluğu, diğer kullanıcılarla paylaşılabilecek muazzam miktarda 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şamalarının yolunu açıklıyor. Ayrıca potansiyel katılımcıların deneyimlerini NumPy ile iletmesi için yapılandırılmış bir şablon oluşturur.

Yazılım belgeleri için genel olarak 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çerikte birleştiren çeşitli dokümanlar yer alır. 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 uygulayabilecekleri hedef odaklı prosedürler sunar. Açıklama alanı, her bir işlevde ayrıntılı bilgi sağlar. Mevcut eğitim ve "Nasıl yapılır?" alanları net bir şekilde betimlenmemiş ve bazen açıklama ve referans alanına giriliyor. “Mutlak Başlangıç” için mükemmel bir eğitim ve Matlab kullanıcılarının “Matlab kullanıcıları için Numpy” içinde NumPy kodu oluşturmaları için harika bir referans bulunmaktadır. Bu dört alanı net bir şekilde tanımlamak, belgeleri daha net bir şekilde tanımlamaktır.

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

Mevcut belgelerde gerekli birçok konu ele alınsa 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 yol açar. Yeni kullanıcılar, eğitim bölümündeki açıklamalar ve referans materyalleri nedeniyle bunalabilir ve potansiyel katkıda bulunanlar, katkıda bulunma konusunda engellerle karşılaşırlar. Hem yeni başlayanlar hem de dokümanlara katkıda bulunma olasılığı yüksek kullanıcılar için dokümanlarda mantıksal bir akış ve yeni katkıda bulunanlar tarafından kullanıcı tarafından katkıda bulunulan nasıl yapılır dokümanlarına yönelik pull isteklerini yönetme konusunda daha erişilebilir bir düzen öneriyorum. Uzun vadeli hedefim, dokümantasyon topluluğu oluşturmak ve böylece belgelerden öğrenmenin, alıp al/al/öğret ve iletişim amaçlı bir deneyim haline gelmesini sağlamak. Bu dokümantasyon modeli, yeni gelenler ve katkıda bulunabilecek potansiyel müşteriler için eğitimin temelini oluşturur.

Gerekçe

Google Summer of Docs teklifi pedagojik ve kariyer hedeflerim açısından önemli. Tüm kurslarımda NumPy ve SciPy kullanıyorum. Mevcut dokümanlarda öğrencilerim gezinmesi zor. Bilgisayar bilimleri bölümü olmayanlara kodlamayı öğretme deneyimimi, mevcut eğitimlerde organize olmaya, düzenlemeye ve boşlukları doldurmaya yardımcı olması için kullanmak istiyorum. Böylece bu belgeleri hem ders kitabı hem de derslerim için referans materyal olarak kullanabiliyorum. Python ve kullanarak onlarca eğitim, alıştırma ve örnek oluşturdum. Bu materyallerin bir kısmını eğiticilere ve nasıl yapılır kılavuzlarına dönüştürmek istiyorum. 800'den fazla öğrencim NumPy'yi (Scipy yığınının bir parçası olarak) kullandım ve sonbahar sömestirinde dokümantasyona katkıda bulunmak isteyen birden çok öğrencim var. 4 yıldır Connecticut Üniversitesi Makine Mühendisliği bölümünde ders veriyorum ve 30 saatin üzerinde kredi veriyorum.

Belirli Amaçlar

Bu Google Dokümanlar teklifi için üç ö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 amaç, belgelerin yeni kullanıcılar için daha cazip hale gelmesi ve potansiyel katkıda bulunanlar için bir yapı sağlamasıdır. Amaçlar, uzun vadeli NumPy dokümantasyon topluluğunu büyütmeye devam etme hedefine daha da yardımcı olur. Beklenen Sonuçlar

Bu durumda beklenen üç sonuç var: 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 bilgileri, açıklama ve referans; 2. dizi okuma ve yazma, dizi oluşturma (np.zeros, np.ones, np.block vb.) ve NumPy'de öğe bazında ve doğrusal cebir işlemi ve 3. seçili 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 kişilere açık stil ve biçimlerle yardımcı olacak, mevcut eğiticileri daha kısa ve daha kolay takip edebilecek, açıklamaları ayrı bir bölüme taşıyacak ve yeni belgelere katkıda bulunanlar, Sphinx dokümanlarının tamamını oluşturmadan küçük kullanım alanları için nasıl yapılır bölümüne katkıda bulunabilecekler. Öğretim ve öğrenim topluluğumuzu geliştirmeye devam etmek istiyoruz.

Yeni dokümanlara katkıda bulunanlar, tüm Sfenks belgelerini hazırlamadan milyonlarca kullanıcının küçük kullanım alanlarına katkıda bulunabilir. Öğretim ve öğrenim topluluğumuzu geliştirmeye devam etmek istiyoruz. Önerilen bu dokümanlar Matplotlib, Divio vb. mevcut açık kaynak belgeleri taklit eder. Yeni kullanıcılar ve potansiyel katkıda bulunanlar, NumPy'yi alanlarında ve yazılımlarında kullanmayı daha kolay öğrenebilir.

Projenin takvimi 14 Eylül - 30 Eylül. İlk adım, dokümanları oluşturmak ve mevcut eğiticilerdeki içeriği Eğitim, Nasıl Yapılır ve Açıklama içeriklerine ayırmaktır. Bu çalışma, sırasıyla Sonuç 1 ve 2 web sitesi ve eğiticilerin revize edilmesi kapsamında projenin ilk beş haftasında tamamlanacaktır. Önerilen Belgeleme kuruluşu, aşağıda Önerilen Belgeler'de gösterilmektedir.

Önerilen Belgeler:

i.Tutorials:

  • Yeni başlayanlar için mutlak temel bilgiler (yükleme kaldırın, pandas içe/dışa aktarma numpy.loadtxt ile değiştirilebilir mi?)
  • “Numpy nedir” bağlantısı
  • temel kurulum talimatlarına buradan erişebilirsiniz
  • 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: orta-düşük öncelikli)
  • öğe bazında işlemler (+,-,*,/) ve doğrusal cebir işlemleri (+,-,@, linalg.solve) (write:med önceliği)
  • Numpy (yazma: yüksek öncelik) kullanarak veri okuma ve yazma
  • Dizine ekleme

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

  • n boyutlu dizilerde doğrusal 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ğinin bağlantısı (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 container'ları yazma
  • ndarray alt sınıflandırma
  • Çeşitli

iv. Referans Alanı:

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

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

  • Dört alanı net bir şekilde ayıran revize edilmiş bir Belge Web Sayfası: Eğiticiler, Nasıl Yapılır, Açıklama ve Referans
  • 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
  • Kullanıcı katkılarını artırmak ve eğitim/öğrenimde topluluğun hedeflerine daha fazla yardımcı olmak için nasıl yapılır belgeleri önerdi

Her sonucun, 1-3 arasındaki Sonuçlara ilişkin tablolarda aşağıda özetlenen bir dizi adımı vardır. Önerilen Belgeler incelemeye gönderilirken, yüksek öncelikli "Dizileri okuma/yazma" eğiticisi, Sonuç 2'nin parçası olarak pull isteği olarak gönderilmek üzere yazılır. Düzeltilen web sitesini ve güncellenen “Okuma/Yazma Dizileri” eğiticisini incelerken, NumPy işlevlerini (ör. np.ones, np.zeros, np.diag) kullanarak dizi oluşturmak için bir eğitim yazmaya başlayacağım. Kalan süre, pull isteği sorunlarını yanıtlamak ve Python'da 3. düzey öğreticiyi yazmaya başlamak için kullanılır: öğe bazında ve doğrusal cebir işlemleri.

Üçüncü sonuç, Connecticut Üniversitesi'ndeki öğrencilere numpy-tutorials veri havuzunda doküman 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 olur. Örnek bir defter göndermek için bazı kurs notlarımı/örneklerimi kullanacağım. Öğrencilere, bir şablon ve çerçeveleme şeması oluştururken düzen ve yapıya uymalarını tavsiye ediyorum. Bu sonuç, öğrencilere kavramları ve çözümleri daha geniş bir kitleye iletmeleri için gerçek bir deneyim sunuyor. Bu, öğrencilerin NumPy topluluğuna katılması ve öğrenmesi için harika bir fırsattır.

Sonuç 1: Web sitesi Yayın Tarihi'ni Revizyondan Düzeltme Çatal Deposu ve Sfenks ile Dokümanlar Oluşturma 21 Eylül Dört Alan tanımlanıp bağlantılı web sayfası oluşturun 10/1, mevcut eğiticileri uygun alanlara taşıyın ve dokümanlar oluşturun 10/10 Önerilen değişiklikleri içeren PR'yi GitHub'a gönderin 11/1 Yorumlara/önerilere yanıt verin ve Web Sitesi PR30'a yanıt verin ve Sonuç 1/21 devam ederek Web Sitesi PR'sini düzeltin ve 1/10 devam edin

2. Eğiticileri revize edin Eğiticileri revize edin Eğiticilerin revizyon sıralamasını inceleyin Mevcut eğitim içeriğini Eğitim ve Açıklama alanlarına ayırın 10/1 Sıralama 1'i okuyun/Yazın dizileri 10/10 Ayırma ve düzeltme için PR'yi GitHub'a gönderin 10/20 Sıralama 2'yi yazın: Doğrusal Dizi Oluşturma işlemleri PR 11/1/13 Yazma

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

  1. Okuma/yazma dizileri şu anda boş sayfa

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

  3. Element tabanlı ve doğrusal cebir işlemleri (+,-,*,/ ve +,-@,linalg.solve) Var değildir: Bu, özellikle 1 için yararlı olur. Matlab kullanıcıları ve 2. Doğrusal cebir (makine öğrenimi, doğrusal regresyon vb.) benimseyenler

Sonuç 3: Seçilen Nasıl yapılır alanı Teslimat Tarihi Harici Bağlantı(sorun/örnek) Nasıl Yapılır örneği (aday: Gitar tellerinin doğal frekanslarını bulma) 10/10
Yeni katılımcılar için "Nasıl yapılır?" şablonu oluşturun 10/1 devam ediyor Eğitim şablonu PR ve Olası katkıları çerçeveleme Diğer katkıda bulunanlarla birlikte çalışarak Topluluk üyeleri/not defterleri oluşturmayı ve diğer katkıda bulunanlarla birlikte çalışın-Dökümanlar ve yeni üyeler işe alma

Beklenen Anlamlılık

Bu Google Dokümanlar Yazı teklifi , NumPy belgelerini, web sitesindeki eksik eğiticileri dolduracak ve dokümanlara katkıda bulunan kullanıcı sayısını artıracaktır. Makine Mühendisliği bölümünde profesör olarak, öğrencilerimin belgeler arasında gezinebileceği ve giriş niteliğindeki eğiticilere kıyasla uygulamalı nasıl yapılır kılavuzlarına kolayca ulaşabilecekleri şekilde belgeleri bölümlere ayırmayı planlıyorum. Bölümlere ayrılmış dokümanlarda eğitim, nasıl yapılır, referans ve açıklama bölümleri, 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 eğitim ve iletişim deneyimi yoluyla karşılıklı bir alışveriş olanağı sunar. Connecticut Üniversitesi öğrencilerine yönelik tavsiye edilen "nasıl yapılır" dokümanı, bu eğitim ve iletişim fikrini uygulamaya dökecektir. 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 sitesine 07/2020 tarihinde erişildi.
  2. NumPy GitHub deposu.
  3. Belgeleme Sistemi. Divio.com, 07/2020 tarihinde erişilmiştir.
  4. Demir, Cem. Demokrasi ve Eğitim. Gutenberg Projesi, Ağustos 2015.
  5. Demir, Cem. Certainty George Allen And Unwin Limited için macera. 06/2005.