สวิตช์จาก R เป็น Python คุ้มค่าหรือไม่ [ปิด]


31

ฉันเพิ่งจบหลักสูตรปริญญาโทวิทยาศาสตร์ข้อมูล 1 ปีที่เราสอนอาร์ฉันพบว่า Python เป็นที่นิยมมากขึ้นและมีชุมชนขนาดใหญ่ขึ้นใน AI

มันคุ้มค่าสำหรับคนที่อยู่ในตำแหน่งของฉันที่จะเปลี่ยนเป็นงูหลามและถ้าใช่ทำไม? หลามมีคุณสมบัติการเปลี่ยนเกมใด ๆ ที่ไม่พร้อมใช้งานใน R หรือมันเป็นเพียงเรื่องของชุมชนหรือไม่?


2
มันเป็นหลักสูตรที่วิทยาลัยของรัฐมหาวิทยาลัยเอกชนหรือในระบบการศึกษาขององค์กรหรือไม่?
Manuel Rodriguez

12
คุณไม่สามารถเปลี่ยนเป็น Python ได้ คุณไม่ได้พูดเกี่ยวกับโปรเจ็กต์ที่คุณเขียนไปแล้วใน R และต้องการที่จะย้ายไปที่ Python คุณแค่ถามเกี่ยวกับการเรียนรู้ของ Python (ไม่ลืม R) มันคุ้มกับการเรียนรู้ Python หรือไม่? ทุกวันนี้แทบจะเป็นไปไม่ได้เลยที่จะไม่เรียนรู้ Python หากคุณทำงานกับสิ่งใดก็ตามที่เกี่ยวข้องกับการจัดการข้อมูลด้วยคอมพิวเตอร์ ...
lvella

1
ฉันไม่แน่ใจว่าทำไมสิ่งนี้ไม่ปิดตามความคิดเห็น แต่ฉันดีใจ
Evorlor

1
@Evorlor ดูคำตอบของฉันซึ่งแน่นอนระบุคำถามนี้จะยังนำไปสู่คำตอบหลักความคิดเห็นตาม นอกจากนี้ฉันลงคะแนนให้ปิดคำถามนี้โดยยึดหลักความคิดเห็นเป็นหลักแม้ว่าฉันจะให้คำตอบด้วยก็ตาม ในเว็บไซต์นี้มีคำถามมากมายในประเภทนี้ ฉันไม่แน่ใจอีกต่อไปว่านี่เป็นสิ่งที่ดีหรือไม่ แต่คำตอบปัจจุบันของคำถามนี้มีประโยชน์กับคนจำนวนมาก
nbro

2
วิธีนี้ไม่ได้ปิด? นี่เป็นคำถามที่ยึดตามความเห็นตามหลักการ
spacetyper

คำตอบ:


60

ฉันต้องการเปลี่ยนคำถามของคุณใหม่

อย่าคิดเปลี่ยนไปคิดเรื่องเพิ่ม

ในด้านข้อมูลคุณจะสามารถไปได้ไกลด้วยงูหลามหรือ r แต่คุณจะไปไกลที่สุดกับทั้งคู่

Python และ r ใช้งานร่วมกันได้ดีมากด้วยreticulateแพ็คเกจ ฉันมักจะเก็บข้อมูลเป็นระเบียบเพราะมันง่ายสำหรับฉันฝึกฝนโมเดลในหลามเพื่อรับประโยชน์จากความเร็วที่เหนือกว่าและเห็นภาพผลลัพธ์ในรูปลักษณ์ที่สวยงามggplotทั้งหมดในสมุดบันทึกเดียว!

หากคุณรู้อยู่แล้วว่าไม่มีความรู้สึกในการละทิ้งมันให้ใช้มันในที่ที่เหมาะสมและง่ายสำหรับคุณ แต่เป็นความคิดที่ดีที่จะเพิ่ม python สำหรับการใช้งานหลายอย่าง

เมื่อคุณรู้สึกสะดวกสบายทั้งสองอย่างคุณจะมีขั้นตอนการทำงานที่เหมาะกับคุณที่สุดโดยภาษาที่คุณโปรดปราน


ฉันเห็นด้วยกับมุมมองของคุณอย่างเต็มที่ เพียงเพิ่มเข้าไปและพยายามอย่าทิ้งชุดทักษะ R ของคุณ
Jens Kohl

3
upvote reticulateสำหรับ rstudio ยังมีบางส่วนที่รองรับการตรวจสอบไพ ธ อนและกำลังอยู่ในขั้นตอนการเพิ่มอีก
บลูส์

ปัญหาเดียวของการใช้ทั้งคู่คือคุณทำให้คนอื่น ๆ ล่องนั้นขึ้นอยู่กับการมี R และ Python ด้วย ในขณะที่ฉันเห็นด้วยกับการ "เพิ่ม" ให้กับ skillset ของคุณ - ฉันจะยังคงให้บริสุทธิ์เมื่อเขียนสคริปต์
PascalVKooten

reticulateอนุญาตให้ R ใช้ Python; ในทำนองเดียวกันrpy2อนุญาตให้ Python ใช้ R เป็นเรื่องปกติสำหรับการเขียนโปรแกรมภาษาที่มีจุดประสงค์คล้ายกันในการพูดคุยกัน
JG

เผง อย่าค้าขายในเครื่องมือของคุณ แต่เพิ่มเข็มขัดของคุณ ตอนนี้คุณมีเครื่องมือมากขึ้นช่วยให้คุณสามารถแก้ปัญหาได้มากขึ้นด้วยวิธีที่ดีกว่า
เสา

28

แน่นอนคำถามประเภทนี้จะนำไปสู่คำตอบตามความคิดเห็นเป็นหลัก อย่างไรก็ตามมันเป็นไปได้ที่จะระบุจุดแข็งและจุดอ่อนของแต่ละภาษาที่เกี่ยวกับการเรียนรู้ของเครื่องจักรสถิติและการวิเคราะห์ข้อมูลซึ่งฉันจะลองทำรายการด้านล่าง

R

จุดแข็ง

  • R ได้รับการออกแบบและพัฒนาสำหรับนักสถิติและนักวิเคราะห์ข้อมูลดังนั้นจึงมีให้บริการนอกสถานที่ (นั่นคือเป็นส่วนหนึ่งของภาษาของตัวเอง) คุณสมบัติและสิ่งอำนวยความสะดวกสำหรับนักสถิติซึ่งไม่มีใน Python ยกเว้นคุณ ติดตั้งแพ็คเกจที่เกี่ยวข้อง ตัวอย่างเช่น data frame ซึ่ง Python ไม่ได้จัดเตรียมไว้เว้นแต่คุณจะติดตั้งpandasแพ็กเกจPython ที่มีชื่อเสียง มีตัวอย่างอื่น ๆ เช่นเมทริกซ์เวกเตอร์และอื่น ๆ ใน Python มีโครงสร้างข้อมูลที่คล้ายคลึงกัน แต่มีความกว้างมากกว่าดังนั้นจึงไม่ได้มีเป้าหมายเฉพาะสำหรับนักสถิติ

  • มีห้องสมุดสถิติมากมาย

ความอ่อนแอ

หลาม

จุดแข็ง

  • ผู้คนและ บริษัท จำนวนมากรวมถึง Google และ Facebook ลงทุนจำนวนมากใน Python ตัวอย่างเช่นภาษาการเขียนโปรแกรมหลักของ TensorFlow และ PyTorch (สองกรอบการเรียนรู้ของเครื่องที่ใช้กันอย่างแพร่หลาย) คือ Python ดังนั้นจึงไม่น่าเป็นไปได้มากที่ Python จะไม่ถูกใช้อย่างแพร่หลายในการเรียนรู้ของเครื่องอย่างน้อย 5-10 ปีขึ้นไป

  • ชุมชน Python น่าจะใหญ่กว่าชุมชน R มาก ในความเป็นจริงตัวอย่างเช่นถ้าคุณดูดัชนีของ Tiobe Python จะถูกวางไว้ที่ 3 ในขณะที่ R วางไว้ที่ 20

  • Python ใช้กันอย่างแพร่หลายนอกสถิติหรือชุมชนการเรียนรู้ของเครื่อง ตัวอย่างเช่นมันใช้สำหรับการพัฒนาเว็บไซต์ (ดูเช่น Python frameworks Django หรือ Flask)

  • มีห้องสมุดการเรียนรู้ของเครื่องจำนวนมาก (เช่น TensorFlow และ PyTorch)

ความอ่อนแอ

  • ไม่ได้จัดเตรียมฟังก์ชันการวิเคราะห์เชิงสถิติและข้อมูลที่ R ให้ไว้นอกเสียจากว่าคุณจะติดตั้งแพ็คเกจที่เหมาะสม นี่อาจเป็นจุดอ่อนหรือจุดแข็งทั้งนี้ขึ้นอยู่กับมุมมองทางปรัชญาของคุณ

มีข้อดีและข้อเสียอื่น ๆ ที่เป็นไปได้ของภาษาเหล่านี้ ตัวอย่างเช่นทั้งสองภาษาเป็นแบบไดนามิก อย่างไรก็ตามคุณลักษณะนี้อาจเป็นข้อได้เปรียบและเสียเปรียบ (และไม่เกี่ยวข้องกับการเรียนรู้ของเครื่องหรือสถิติอย่างเคร่งครัด) ดังนั้นฉันจึงไม่ได้แสดงรายการไว้ด้านบน ฉันหลีกเลี่ยงการกล่าวถึงคุณลักษณะภาษาที่มีความเห็นเช่นการอ่านโค้ดและช่วงการเรียนรู้ด้วยเหตุผลที่ชัดเจน (เช่นไม่ใช่ทุกคนที่มีประสบการณ์การเขียนโปรแกรมเดียวกัน)

ข้อสรุป

Python คุ้มค่าที่จะเรียนรู้อย่างแน่นอนหากคุณกำลังศึกษาการเรียนรู้ของเครื่องหรือสถิติ อย่างไรก็ตามมันไม่ได้หมายความว่าคุณจะไม่ใช้ R อีกต่อไป R อาจยังทำงานได้ดีกว่าสำหรับงานบางอย่าง


3
ดูเหมือนว่าชุดคุณลักษณะ "ไม่อยู่ในกรอบ" ไม่เกี่ยวข้อง สิ่งที่เกี่ยวข้องคือความพร้อมใช้งานของแพ็คเกจที่ทำในสิ่งที่คุณต้องการไม่ใช่หรือ?
Dean MacGregor

1
@DeanMacGregor หากคุณไม่สามารถเข้าถึงอินเทอร์เน็ตได้คุณสมบัตินี้มีความเกี่ยวข้อง! นอกจากนี้หากภาษาการเขียนโปรแกรมมีคุณสมบัตินอกกรอบอยู่แล้วคุณไม่ต้องเสียเวลาค้นหามัน
nbro

เมื่อพิจารณาจาก Python พบว่ามี 'แบตเตอรี่รวมอยู่' อย่างมากความอ่อนแอของมันไม่ได้เป็นสิ่งที่คุณต้องเผชิญบ่อยครั้ง โดยเฉพาะอย่างยิ่งตั้งแต่มีการติดตั้งหลามในการใช้งานที่ทำมีแพคเกจรวมสถิติ โดยเฉพาะอย่างยิ่งด้านวิทยาศาสตร์ข้อมูลแอนาคอนดาค่อนข้างเป็นที่นิยมและแก้ไขข้อกังวลของคุณได้ทันที
เสา

6

ฉันไม่มีตัวเลือกนี้เพราะฉันถูกบังคับให้ย้ายจาก R ไป Python:

ขึ้นอยู่กับสภาพแวดล้อมของคุณ: เมื่อคุณฝังตัวในแผนกวิศวกรกลุ่มทำงานด้านเทคนิคหรือบางอย่างที่คล้ายกับ Python จะเป็นไปได้มากขึ้น

เมื่อคุณถูกรายล้อมไปด้วยนักวิทยาศาสตร์และนักสถิติโดยเฉพาะให้อยู่กับอาร์

PS: R มี keras และ tensorflow เช่นกันแม้ว่ามันจะถูกนำมาใช้ภายใต้ประทุนของหลาม มีเพียงสิ่งขั้นสูงเท่านั้นที่จะทำให้คุณต้องการงูใหญ่ แม้ว่าฉันได้รับมากขึ้นและใช้ในการหลาม synthax ในR เป็นเรื่องง่าย และแม้ว่าแต่ละแพ็คเกจจะมีของตัวเอง แต่ก็มีความสอดคล้องกันในขณะที่ Python ไม่ได้ .. และ ggplot นั้นแข็งแกร่งมาก Python มี clone (plotnine) แต่มันขาดคุณสมบัติ (สำคัญ) หลายอย่าง โดยหลักการแล้วคุณสามารถทำได้เกือบเท่าใน R แต่การสร้างภาพข้อมูลและการถกเถียงโดยเฉพาะอย่างยิ่งง่ายขึ้นในอาร์ดังนั้นไลบรารี Python ที่โด่งดังที่สุดคือ pandas ซึ่งเป็นโคลนนิ่งของ R

PSS: สถิติขั้นสูงมีเป้าหมายอย่างแน่นอนที่ R. Python มีเครื่องมือและวิธีการมากมายสำหรับนักวิทยาศาสตร์ข้อมูล แต่จะไม่ถึงแพ็คเกจมากกว่า13,000แพ็คเกจ R ตัวอย่างเช่นฉันต้องย้อนกลับการถดถอยและหลามไม่ได้เสนอสิ่งนี้ ใน R คุณสามารถเลือกระหว่างการทดสอบความเชื่อมั่นหลายแบบและไม่ว่าจะเป็นแบบเชิงเส้นหรือไม่เชิงเส้น เช่นเดียวกันกับโมเดลผสม: มันถูกนำไปใช้ในไพ ธ อน แต่มันก็ธรรมดามากฉันไม่สามารถรู้ได้ว่ามันจะเพียงพอสำหรับใครบางคน


4

ฉันจะบอกว่าใช่ Python ดีกว่า R สำหรับงานส่วนใหญ่ แต่ R มีช่องว่างและคุณยังต้องการใช้งานในหลาย ๆ สถานการณ์

นอกจากนี้การเรียนรู้ภาษาที่สองจะช่วยพัฒนาทักษะการเขียนโปรแกรมของคุณ

มุมมองของฉันเองเกี่ยวกับจุดแข็งของ R vs Python คือฉันจะชอบ R สำหรับโปรแกรมขนาดเล็กแบบใช้ครั้งเดียวที่เกี่ยวข้องกับตารางหรือแผนภูมิหรืองานสำรวจในหลอดเลือดดำเดียวกัน ฉันต้องการ Python สำหรับทุกอย่างอื่น

  • R คือจริงๆที่ดีสำหรับกระดูกตาราง หากส่วนใหญ่ของสิ่งที่โปรแกรมเฉพาะจะทำคือ smoosh บางตารางเป็นรูปร่างที่แตกต่างกันแล้ว R คือสิ่งที่เลือก Python มีเครื่องมือสำหรับสิ่งนี้ แต่ R ได้รับการออกแบบมาเพื่อให้ทำงานได้ดีขึ้น
  • มันคุ้มค่าที่จะเปลี่ยนเป็น R เมื่อใดก็ตามที่คุณต้องการสร้างแผนภูมิเพราะggplot2เป็นผลงานชิ้นเอกของการใช้งาน API และmatplotlibเป็นเรื่องสยองขวัญที่คลาน
  • Python ได้รับการออกแบบมาอย่างดีสำหรับการโปรแกรมทั่วไป มันมีชุดของโครงสร้างข้อมูลมาตรฐานที่ได้รับการออกแบบมาเป็นอย่างดีไลบรารีมาตรฐานและคำสั่งควบคุมการไหล
  • R เหมาะสำหรับการเขียนโปรแกรมเอนกประสงค์ มันไม่สามารถจัดการข้อมูลที่มีโครงสร้างแบบต้นไม้หรือมีโครงสร้างกราฟได้ดี มีกฎบางอย่าง (เช่นสามารถดูและแก้ไขขอบเขตพาเรนต์ของคุณ) ซึ่งสะดวกในทันที แต่เมื่อนำไปใช้กับโปรแกรมที่ยากต่อการเติบโตแก้ไขหรือเขียน
  • R มีสิ่งที่ไม่ดีตรงไปตรงมาเช่นกัน สิ่งเหล่านี้ส่วนใหญ่เป็นของเหลือจากประวัติศาสตร์เช่นระบบวัตถุสามระบบที่แตกต่างกัน

เพื่ออธิบายเพิ่มเติมเกี่ยวกับประเด็นสุดท้าย: การเขียนโปรแกรมคอมพิวเตอร์ทำได้ดีคือเลโก้ที่คุณสร้างอิฐของคุณเอง (ฟังก์ชั่นและโมดูล)

โดยทั่วไปโปรแกรมจะถูกปรับเปลี่ยนและผ่านการออกแบบเดิมไปแล้ว เมื่อคุณสร้างมันจะมีประโยชน์ที่จะคิดว่าชิ้นส่วนใดที่อาจถูกนำมาใช้ซ้ำและการสร้างชิ้นส่วนเหล่านั้นในลักษณะทั่วไปที่จะให้พวกเขาเสียบเข้ากับก้อนอิฐอื่น ๆ

R สนับสนุนให้คุณละลายก้อนอิฐทั้งหมดเข้าด้วยกัน


1

อย่างที่คนอื่นพูดมันไม่ใช่ "สวิตช์" แต่มันก็คุ้มที่จะเพิ่ม Python ในคลังแสงของคุณหรือไม่? ฉันจะพูดอย่างแน่นอน ในด้านวิทยาศาสตร์ข้อมูล Python ได้รับความนิยมและได้รับความนิยมมากขึ้นเรื่อย ๆ ในขณะที่ R กำลังลดลงบ้าง และในด้านการเรียนรู้ของเครื่องและเครือข่ายประสาทฉันจะบอกว่า Python เป็นภาษาหลักในขณะนี้ - ฉันไม่คิดว่า R จะมาใกล้ที่นี่จริงๆในแง่ของการใช้งาน เหตุผลทั้งหมดนี้คือสิ่งที่เกิดขึ้นทั่วไป Python มีวัตถุประสงค์เพื่อเป็นภาษาโปรแกรมทั่วไปและช่วยให้คุณสคริปต์งานทุกประเภทได้อย่างง่ายดาย หากคุณอยู่ในโลกทางสถิติที่มีโครงสร้างอย่างเรียบร้อย R ก็ยอดเยี่ยม แต่สำหรับ AI คุณมักจะต้องทำสิ่งนวนิยายเรื่องเบ็ดเตล็ดและฉันไม่คิดว่า R สามารถเอาชนะ Python ได้ และด้วยเหตุนี้


0

นี่เป็นความเห็นส่วนตัวของฉันทั้งหมด

ฉันอ่านในสำนักงานของฉัน (ที่สถานที่ก่อสร้าง) ว่า "มีเครื่องมือที่เหมาะสมสำหรับทุกงาน"

ฉันคาดหวังว่าฉันจะต้องเผชิญกับงานที่หลากหลายในฐานะโปรแกรมเมอร์ ฉันต้องการเครื่องมือให้มากที่สุดเท่าที่จะทำได้ "ซื้อหรือลงทุน" เท่าที่จะทำได้ เครื่องมือหนึ่งวันหนึ่งจะช่วยฉันแก้ปัญหาบางวันเครื่องมืออื่น ๆ R (สำหรับสถิติ) และ Python (โดยทั่วไป) เป็นเครื่องมือสองอย่างที่ฉันต้องการกับฉันและฉันคิดว่ามันคุ้มค่ากับการลงทุนสำหรับฉัน

เท่าที่เกี่ยวข้องกับสวิตช์ฉันจะใช้เครื่องมือที่มีประสิทธิภาพที่สุดเท่าที่ฉันรู้ (ที่วัดประสิทธิภาพตามความต้องการของลูกค้าเวลาและค่าใช้จ่ายในการลงทุน ยิ่งฉันรู้เครื่องมือมากขึ้นเท่าไร แน่นอนว่ามันมีขีด จำกัด ในทางปฏิบัติ

ทั้งหมดนี้เป็นความเห็นส่วนตัวของฉันและไม่ถูกต้อง


0

ดูเหมือนว่าคุณได้ลงทุน 1 ปีสำหรับวิทยาศาสตร์ข้อมูลด้วย R และฝังลงในสภาพแวดล้อม R แต่ต้องการสำรวจ python สำหรับวิทยาศาสตร์ข้อมูล

ก่อนอื่นเรียนรู้พื้นฐานของงูหลามเช่นวิธีการทำงานของรายการและสิ่งอันดับและวิธีการทำงานของคลาสและวัตถุ

จากนั้นทำให้มือของคุณสกปรกด้วยห้องสมุดบางอย่างเช่นหมีแพนด้ามัทplotlib เรียนรู้ tensorflow หรือ keras จากนั้นเข้าสู่ศาสตร์ข้อมูล


-1

บุคคลที่ไล่ล่ากระต่ายสองตัวไม่จับ

และใช่งูหลามเป็นที่นิยมมากขึ้น ฉันทำงานทั้งสองอย่าง แต่การพูดคุยทางธุรกิจมันง่ายที่จะหางานใน Python มากกว่าใน R

ดังนั้นคุณสามารถ:

  • เลือก Python เพราะมันเป็นที่นิยมมากกว่า อย่างไรก็ตามคุณต้องเริ่มจากศูนย์

หรือ

  • อยู่กับ R หลังจากนั้นคุณมีค่าฝึกอบรมหนึ่งปีกับ R แต่ก็ไม่เป็นที่นิยม

ข้อเสนอแนะที่นี่ที่การเรียนรู้ภาษาการเขียนโปรแกรมเพิ่มเติมจะทำให้คุณแย่ลงอย่างไร้สาระ การเรียนรู้ภาษาการเขียนโปรแกรมเพิ่มเติมโดยเฉพาะอย่างยิ่งที่ไม่คุ้นเคยจะช่วยพัฒนาทักษะของคุณในฐานะโปรแกรมเมอร์ในภาษาใด ๆ
Will Da Silva
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.