ในบรรดา Matlab และ Python ภาษาใดดีสำหรับการวิเคราะห์ข้อมูลสถิติทั่วไป อะไรคือข้อดีข้อเสียนอกเหนือจากการเข้าถึงสำหรับแต่ละ?
ในบรรดา Matlab และ Python ภาษาใดดีสำหรับการวิเคราะห์ข้อมูลสถิติทั่วไป อะไรคือข้อดีข้อเสียนอกเหนือจากการเข้าถึงสำหรับแต่ละ?
คำตอบ:
ในฐานะผู้ใช้ Matlab Diehard ในช่วง 10 ปีที่ผ่านมาฉันแนะนำให้คุณเรียนรู้ Python เมื่อคุณมีทักษะเพียงพอในภาษาเมื่อคุณทำงานในภาษาที่คุณกำลังเรียนรู้มันจะดูเหมือนว่าคุณไม่ได้มีประสิทธิภาพเพียงพอและคุณจะกลับไปใช้ภาษาที่ดีที่สุดเริ่มต้นของคุณ อย่างน้อยที่สุดฉันขอแนะนำให้คุณลองใช้ภาษาที่มีความเชี่ยวชาญพอ ๆ กัน (ฉันจะแนะนำ R ด้วย)
สิ่งที่ฉันชอบเกี่ยวกับ Matlab:
สิ่งที่ฉันไม่ชอบเกี่ยวกับ Matlab:
median
ฟังก์ชั่นนี้คือฟังก์ชั่นของ Matlab ซึ่งทำการเรียงลำดับข้อมูลจากนั้นรับค่ากลางดำเนินการเรียงลำดับของข้อมูลแล้วจะใช้เวลาค่ากลางนี่เป็นอัลกอริธึมที่ผิดตั้งแต่ยุค 70-nojvm
จะปรากฏขึ้นเพื่อให้ความช่วยเหลือ ...
shuffle
อาจอยู่ในกล่องเครื่องมือไม่ใช่ stock matlab อาจจะเลวร้ายยิ่งกว่า builtin randperm
ซึ่งส่งกลับดัชนีการเรียงลำดับของเวกเตอร์แบบสุ่ม อีกครั้งนี้น่าจะเป็นขั้นตอนวิธีการที่ไม่ถูกต้อง (ผมเพิ่งได้เรียนรู้เกี่ยวกับนู-Fisher-Yates สับเปลี่ยนที่นี่ใน stats.SE) ..
randperm
ว่ามันได้รับผลกระทบจากการเพาะเมล็ดrandn
ในขณะที่ Knuth-Fisher-Yates รุ่น mex'ed อาจไม่สามารถเข้าถึงเมล็ด randn 'ภายใน' และการสลับรุ่นบริสุทธิ์อาจเป็นไปได้ ช้าเกินไป
ช่วยแบ่งมันออกเป็นสามส่วน (ด้านบนสุดของหัวของฉัน) ที่การเขียนโปรแกรมตรงตามสถิติ: การบดอัดข้อมูลการคำนวณเชิงตัวเลข (การเพิ่มประสิทธิภาพและอื่น ๆ ) และไลบรารีสถิติ (การสร้างแบบจำลอง ฯลฯ )
ในครั้งแรกที่แตกต่างที่ใหญ่ที่สุดคืองูใหญ่เป็นภาษาการเขียนโปรแกรมวัตถุประสงค์ทั่วไป Matlab นั้นยอดเยี่ยมตราบใดที่โลกของคุณมีค่าประมาณ isomorphic ไปยังอาร์เรย์ตัวเลข fortran เมื่อคุณเริ่มจัดการกับ data munging และปัญหาที่เกี่ยวข้อง Python จะสรุป Matlab ตัวอย่างเช่นดูหนังสือเกร็กวิลสัน: ข้อมูลกระทืบ: แก้ปัญหาในชีวิตประจำวันโดยใช้ Java, Python และอื่น ๆ
ในวันที่สอง Matlab จะส่องแสงกับงานตัวเลข ชุมชนการวิจัยจำนวนมากใช้มันและหากคุณกำลังมองหาการพูดอัลกอริทึมบางอย่างที่เกี่ยวข้องกับกระดาษในการรับรู้แบบบีบอัดคุณอยู่ไกลมีแนวโน้มที่จะพบว่าการดำเนินการใน Matlab ในทางกลับกัน Matlab เป็นประเภทของการคำนวณทางวิทยาศาสตร์ - มันมุ่งมั่นที่จะมีฟังก์ชั่นสำหรับทุกสิ่งภายใต้ดวงอาทิตย์ ความสวยงามและสถาปัตยกรรมที่เกิดขึ้นทำให้คุณคลั่งไคล้หากคุณเป็นคนที่ชอบการเขียนโปรแกรมภาษา แต่ในแง่ของประโยชน์ใช้สอยมันทำให้งานสำเร็จ สิ่งเหล่านี้มีจำนวนน้อยลงเมื่อเทียบกับ Numpy / Scipy ที่เพิ่มขึ้นคุณก็น่าจะพบกับการเพิ่มประสิทธิภาพและไลบรารี่การเรียนรู้ของเครื่องสำหรับ Python การเชื่อมต่อกับ C นั้นทำได้ง่ายในภาษาใดภาษาหนึ่ง
ในความพร้อมของห้องสมุดสถิติสำหรับการสร้างแบบจำลองและทั้งสองค่อนข้างขาดเมื่อเทียบกับบางสิ่งบางอย่างเช่นอาร์ (แม้ว่าฉันสงสัยว่าทั้งสองจะตอบสนองความต้องการ 80% ของคนทำงานสถิติ) สำหรับด้านงูหลามเห็นคำถามนี้ : งูหลามเป็นสถิติปรับแต่ง สำหรับด้าน Matlab ฉันรู้ว่ามีกล่องเครื่องมือสถิติ แต่ฉันจะให้คนที่มีความรู้กรอกข้อมูลในช่องว่าง (ประสบการณ์ของฉันกับ Matlab จำกัด เฉพาะงานตัวเลขที่ไม่เกี่ยวข้องกับสถิติ)
ฉันเป็นผู้ใช้ Matlab ตัวยงมานานกว่า 10 ปีแล้ว หลายปีที่ผ่านมาฉันไม่มีเหตุผลที่จะทำงานนอกเหนือจากกล่องเครื่องมือที่ฉันสร้างขึ้นสำหรับงานของฉัน แม้ว่าฟังก์ชั่นจำนวนมากถูกสร้างขึ้นสำหรับกล่องเครื่องมือฉันมักจะต้องสร้างอัลกอริทึมสำหรับการวิเคราะห์การเปลี่ยนแปลงอย่างรวดเร็ว เนื่องจากอัลกอริทึมเหล่านี้มักใช้คณิตศาสตร์เมทริกซ์ Matlab จึงเป็นตัวเลือกที่เหมาะสมที่สุดสำหรับงานของฉัน นอกจากกล่องเครื่องมือ Matlab ของฉันของรหัสอื่น ๆ ในกลุ่มของฉันทำงานอย่างกว้างขวางใน Java เนื่องจากมีการทำงานร่วมกันอย่างชัดเจนระหว่างภาษา เป็นเวลาหลายปีที่ฉันมีความสุขอย่างสมบูรณ์กับ Matlab แต่ประมาณ 3 ปีที่แล้วฉันตัดสินใจที่จะเริ่มต้นการเปลี่ยนแปลงอย่างช้าๆจาก Matlab และยินดีที่จะบอกว่าฉันยังไม่ได้เปิดมันในอีกประมาณหนึ่งปี นี่คือเหตุผลสำหรับการย้ายของฉัน:
-nodesktop
ตัวเลือกเป็นสิ่งที่ดีเป็นส่วนใหญ่ แต่ก็มีปัญหานี่เป็นเพียงส่วนหนึ่งของ Matlab ของฉัน มันเป็นคุณลักษณะที่ส่องแสง: มันง่ายและง่ายต่อการเขียนโค้ดอย่างรวดเร็ว (ถ้าไม่น่าเกลียด) ฉันทิ้งมันไปแล้วและการค้นหาของฉันทำให้ฉันผ่าน Clojure-> JavaScript-> Python <-> Julia; ใช่ฉันเคยไปทั่วสถานที่