Soru Python vs Matlab [kapalı]


MATLAB'tan Python'a geçiş yapmayı düşünüyorum. Uygulama nicel ticaret ve maliyet gerçekten bir sorun değildir. MATLAB hakkında sevdiğim birkaç şey var ve Python'un nasıl yığıldığını merak ediyorum (okuduğum yorumlara cevap bulamadım).

  1. Python için MATLAB (değişken editör, hata ayıklayıcı, profiler) kadar iyi bir IDE var mı? Spyder hakkında güzel şeyler okudum, ama bir profiler var mı?

  2. MATLAB içindeki yoldaki bir işlevi değiştirdiğinizde, otomatik olarak yeniden yüklenir. Kitaplıkları değiştirdiğinizde el ile yeniden içe aktarmanız mı gerekiyor yoksa bu otomatik olarak yapılabilir mi? Bu küçük bir şey, ama aslında verimliliğimi büyük ölçüde artırıyor.


25
2018-03-06 23:52


Menşei


2. reklam: Evet. - Sven Marnach
Matlab, aynı zamanda hızlı bir şekilde çıkış yapan bir matematiksel programlama arabirimidir. Bu sadece piton ile çok tanıdık Matlab daha hızlı dil python. Matlab'ın kullanımı, farklı grafiklerin kullanılması Matlab ile daha kolaydı. Bir program Python yürütüldükten sonra çıktı programlanır veya kullanıcı tarafından programlanana kaydedilir, ancak Matlab'da veriler hala kaydedilir ve programdaki hatalar çözülebilir ve bu bölüm tekrar çalıştırma simülasyonu yeniden başlatma saatleri yerine bu satırdan başlayabilir. test yapmak. Ve Hayır, ilk koşuyu her zaman% 100 doğru kod yazamayacağım. - Martijn van Wezel
@Martijn Ehmmm ... ayrıca python'da kodları interaktif olarak çalıştırabilir, sadece istediğiniz satırları çalıştırabilir ve değişiklik yapabilirsiniz .. - Antonello
@Antonello Bunun için iyi bir örnek görmedim. Matlab'ı kullanmamın temel nedeni, çünkü benim için ücretsiz ve kütüphane karışıklığı yok (ve işaret levhası) - Martijn van Wezel
@MartijnvanWezel ..just bir Python IDE kullanın, çalıştırmak için gereken kodu seçin ve "run bloğu" veya benzeri menüden seçin. Eğer Python'un sayısal hesaplama yapmak için harici kütüphaneleri kurması gerekmiyorsa Julia gibi (Juno IDE ile) .. çok hızlı, bu zaten çekirdekte sayısal hesaplama için her şeye sahiptir ve sözdizimi ÇOK benzer Matlab (bkz. bu hile sayfası) - Antonello


Cevaplar:


IDE: Hayır. Python IDE'leri, MATLAB'lar kadar iyi ya da olgunlara yakın değiller, ancak Wing IDE hakkında iyi şeyler duydum. Genelde, IDE'leri Python geliştirme için toplam overkill olarak buluyorum ve iyi ayarlanmış bir metin editörü (benim durumumda vim) ve ayrı bir görsel hata ayıklayıcısı (WinPDB) ile daha üretken olduğumu buluyorum.

Değiştirme işlevleri: Modüller, reload() yerleşik işlev.

import foo
#now you've changed foo.py and want to reload it
foo = reload(foo)

Kendimi MATLAB'tan Python'a geçirdim, çünkü Python'un karmaşıklıkla çok daha iyi anlaştığını, yani Python'da karmaşık kod yazmanın, hata ayıklamanın ve sürdürmenin daha kolay olduğunu buluyorum. Bunun nedenlerinden biri, Python'un uzman bir matris-manipülasyon dili yerine genel amaçlı bir dil olmasıdır. Bu nedenle, dizeler, sayısal olmayan diziler ve (önemli olarak) ilişkilendirici diziler (veya haritalar veya sözlükler) gibi varlıklar, sınıflar olarak Python'da birinci sınıf yapılardır.

NumPy, SciPy ve Matplotlib ile yetenekleri ile ilgili olarak, MATLAB'ın kutudan sağladığı tüm işlevselliği ve oldukça fazla sayıda alete sahip olacaksınız.


18
2018-03-07 00:08



PyCharm müthiş, ben Matlab kullanmıyorum, bu yüzden ikisini kıyaslayamıyorum ama PyCharm'ı denediniz mi? - lukecampbell
PyDev mükemmel bir IDE'dir. PyCharm da iyidir. - Boris Gorelik
Spyder'ın Matlab replasmanı olarak Wing'den daha iyi olduğundan şüpheleniyorum. - endolith
Son yorumuma göre düzeltme, hepsinden daha iyi. PyCharm, yöntemleri yeniden düzenlemede iyi oldu. - lukecampbell
Ben şahsen PyDev + vwrapper'ı seviyorum. Her iki dünyanın en iyisi - tam bir ide'de düzenleme gibi. - dhj


Python (x, y) dağıtımında Spyder IDE ile çok iyi anlaştım. Ben Matlab'ın uzun vadeli bir kullanıcısıyım ve 10 yıldır Python'un varlığından haberdar oldum ama Python'u düzenli olarak kullanmaya başladığımdan beri Python'u (x, y) kurdum.


12
2018-05-22 15:03





Ayrıca, 2 ana endişenizi ele almamalarına rağmen, aşağıdaki ileti dizisindeki yanıtlardan bazılarına göz atmak isteyebilirsiniz:

Python'a geçmeli miyim?

Ayrıca Matlab'dan toplam dönüşüm yapıyorum:

  1. Henüz tam özellikli bir Python IDE kullanmam, fakat Matytlotlib, Numpy, Scipy, vb. İle birlikte IPython'da oldukça iyi bir şekilde çalıştım. Aslında ihtiyacım olan bilimsel / nicel paketlerin çoğunda önceden yüklenmiş olan Pillhon Entegrasyonunu kullanıyorum. . Ayrıca Python (x, y) ve Sage hakkında iyi şeyler duydum.

  2. Belki diğer IDE'ler bunu halleder ama IPython'da oldukça iyi çalışan autoreload kullanıyorum.

Başkalarının da belirttiği gibi, sayısal / kantitatif kütüphaneler, üst üste bir dili hapseden sayısal bir kütüphane yerine Python'a geldiğinden, Matlab ile elde edemeyeceğiniz inanılmaz bir esnekliğe sahip olursunuz. Ayrıca Python topluluğu, özellikle sayısal / kantitatif alanlarda, gerçekten oldukça fantastik.


8
2018-03-07 00:31



Merak ediyorum - ne tür bir esneklikten bahsediyorsunuz? Bir örnek verebilir misiniz? - SCFrench
@SCFrench (işvereninize karşı herhangi bir suç işlemez - Matlab lisansüstü eğitimim boyunca bana iyi hizmet etti), ancak Python tam teşekküllü bir açık kaynak programlama dili IMHO (1) OOP olduğu için aşağıdakileri daha iyi yapar: - En yeni Matlab'ı kullanmadım Enkarnasyon, ama Matlab'ı kullanırken yapılan uygulama, arzulanan bir çok şey bıraktı. (2) Dize taşıma (3) Herhangi bir platformda / makinede çalıştırmak / dağıtmak için özgür - bu benim için en büyük esneklik sorunudur. Bu kısmi bir listedir ve Matlab'ın son derece yetenekli olduğunu ve bazı güzel niteliklere sahip olduğunu kabul ediyorum, ancak birlikte çalıştığım projeler beni bir dönüşüm haline getirdi. - JoshAdel
Bir tartışmaya ya da başka bir şeye başlamak istemiyorum; MATLAB'ı geliştirmenin yollarını gerçekten merak ediyorum. Bilgi için teşekkürler! - SCFrench


Bir süredir mühendislik alanında çalıştım ve her zaman yüksek karmaşıklık matematik hesaplamaları için MATLAB kullandım. Onunla hiçbir zaman önemli bir problemim olmadı, ama ben de bu konuda çok hevesli değildim. Birkaç ay önce, sayısal bir yöntem dersi için bir TA olacak ve Python kullanarak öğretileceğini öğrendim, bu yüzden dili öğrenmek zorundaydım.    İlk düşündüğüm şey, ekstra bir işin harika bir hobi olduğu ortaya çıktı. MATLAB'ın Python ile karşılaştırıldığında ne kadar kötü olduğunu açıklamaya bile başlayamıyorum! Beni tüm gün boyunca Matlab'da kodlamak için kullandım, Python'da yazmak için sadece birkaç saatimi aldı. Benim kodum da daha çekici görünüyor. Python'un performansı ve esnekliği beni gerçekten şaşırttı. Python ile MATLAB'da yaptığım her şeyi gerçekten yapabilirim ve bunu çok daha iyi yapabilirim.

Eğer başkası değiştirmeyi düşünüyorsa, bunu yapmanızı öneririm. Hayatımı çok kolaylaştırdı. "Python Scripting Computational Science" yazacağım, çünkü Python'un PAMPAM'larını MATLAB üzerinden benden daha iyi tanımladılar:

  • python programlama dili daha güçlüdür
  • python ortamı tamamen açık ve entegrasyon için yapıldı        harici araçlarla
  • Çok sayıda işlev ve sınıf içeren eksiksiz bir araç kutusu / modül tek bir dosyada bulunabilir (bir grup M-dosyalarının aksine),
  • işlevlerin işlevlere argüman olarak aktarılması daha basittir,
  • iç içe geçmiş, heterojen veri yapıları inşa etmek ve kullanmak için basittir,
  • Nesne yönelimli programlama daha uygundur,
  • C, C ++ ve fortran kodlarının arayüzlenmesi daha iyi desteklenir ve bu nedenle daha basittir,
  • skaler işlevler, dizi argümanlarıyla daha büyük bir oranda çalışır (aritmetik işleçlerin modifikasyonları olmadan),
  • Kaynak ücretsizdir ve daha fazla platformda çalışır.

4
2018-01-28 13:16





Kullanıyoruz Kanat IDE Python gelişimi için. Oldukça iyi özelliktedir, entegre hata ayıklama desteğine sahiptir ve seçtiğiniz profilerle bağlantı kurabilirsiniz.

(2) ile ilgili olarak, Lisp'den aynı özelliği özlediğimden tam olarak ne demek istediğimi biliyorum, ve bildiğim kadarıyla, kütüphaneleri aktif olduktan sonra değiştirmelisiniz. Bu, gerçek bir asamble değildir, bununla birlikte, ilgilendiğiniz her modül için bunu kolayca yapan küçük bir işlevi kolayca yazabildiğiniz ve bu fonksiyonu bir anahtar makronun üzerine yazabildiğiniz için tek yapmanız gereken tek şeydir. Örneğin Kodu değiştirdikten sonra CTRL-T'ye basın.


3
2018-03-06 23:58





Neredeyse her şey başkaları tarafından karşılanıyor. Umarım optimizaryon araç kutusu, sinir ağı vb. gibi alet kutularına ihtiyaç duymazsınız. [Bunları python için bulamadım. Bazıları olabilir. Cidden daha iyi olduklarından şüphe duyuyorum. Matlab olanlar ..]

sembolik manipülasyon yeteneğine ihtiyacınız yoksa ve windows python kullanıyorsa (x, y) gitmek için bir yol var [linux portunda fazla aktivite yok (eski versiyonlar mevcuttur)] (ya da bazı küçük sembolik manipülasyonlar kullanımı semptom kullanın, ben EPD ve python ile birlikte olduğunu düşünüyorum (x, y) EPD supersedes / integras)

Eğer sembolik yeteneklere ihtiyacınız varsa adaçayı gidersiniz, IMHO adaçayı Matlab ve Mathematica ile iyi durur.

Ben de bir geçiş yapmaya çalışıyorum ... (Engg projelerine ihtiyacım var)

Umut ediyorum bu yardım eder ..


2
2018-03-07 01:32



scipy oldukça kapsamlı bir optimizasyon araçlarına sahiptir. docs.scipy.org/doc/scipy/reference/optimize.html - Chinmay Kanchi
Python için çeşitli sinir ağı kütüphaneleri vardır, örneğin pybrain.org. Matlab araç setiyle nasıl kıyaslandığını bilmiyorum, ama (1) özgürler ve (2) onları elden çıkarmayacağım çünkü bu projelerin çoğunu geliştiren çok akıllı insanlar var. - JoshAdel
pardon, eğer tonum açık değilse, kimseyi yazmaya çalışmıyorum ... (umarım varolanlardan daha iyi olurlar) belirli bir araç kutusunun nasıl çalıştığını ve nasıl davrandığını öğrenir. büyük yatırım, matlab sinir ağ araç kutusu kullanarak bazı iyi işler yaptım (benim enstitümün birkaç lisansı var .. para hakkında endişelenmenize gerek yok !!) Nnet araç kutusunun hızı ve güvenilirliği ile oldukça memnun kaldım. Bu küçük projeyi düzenli cuuriculum'um boyunca yapıyordum (bu sem, telaşlı sayılır!), işi bitirebilirim, bu yüzden alt satır biraz önyargılı. - fedvasu


uzun süredir editörler ile uzun röportajlar, aptana ide + ipython'a yerleştim (internet tarayıcısındaki not defteri dahil) düzenleme için harika, kolay yardım al, hızlı yeni şeyler dene

aptana (pydev nedeniyle) tutulması ile aynıdır ama aptana temaları vardır ve farklı küçük şeyler tutulması yoksun

python hakkında biraz, Veri analizinde son derece güçlü bir araç olduğu için pandaları da unutma gelecekte bir canavar olacak, benim fikrim

Matlab'ı araştırıyorum ve orada bazı temiz şeyler görüyorum, özellikle de gui arayüzleri ve diğer güzel şeyler

python size esneklik ve kolaylık sağlar. neyse, hala python, matplotlib, numpy (ve sonunda pandalar) temellerini öğrenmek zorundasınız

ama görüyorum ki, numpy ve matplotlib matplotlib kavramlarına benziyor (muhtemelen akılda matlab ile yaratılmışlar, değil mi?)


2
2018-04-30 17:57