Có hàng tá bài viết so sánh R vs. Python từ quan điểm chủ quan, dựa trên quan điểm. Cả Python và R đều là những lựa chọn tuyệt vời để phân tích dữ liệu hoặc bất kỳ công việc nào trong lĩnh vực khoa học dữ liệu
Nhưng nếu mục tiêu của bạn là tìm ra ngôn ngữ nào phù hợp với mình, thì việc đọc ý kiến của người khác có thể không hữu ích. “Dễ” của người này là “khó” của người khác và ngược lại
Trong bài viết này, chúng ta sẽ làm điều gì đó khác biệt. Chúng tôi sẽ xem xét khách quan cách cả hai ngôn ngữ xử lý các tác vụ khoa học dữ liệu hàng ngày để bạn có thể xem xét chúng song song và xem ngôn ngữ nào phù hợp hơn với bạn
Hãy ghi nhớ, bạn không cần phải thực sự hiểu tất cả mã này để đưa ra đánh giá ở đây. Chúng tôi sẽ cung cấp cho bạn các đoạn mã R và Python cho từng tác vụ — chỉ cần quét qua mã và xem xét đoạn mã nào có vẻ “dễ đọc” hơn đối với bạn. Đọc phần giải thích và xem liệu một ngôn ngữ có hấp dẫn hơn ngôn ngữ kia không
Tin tốt? . Nếu bạn đang muốn học một số kỹ năng lập trình để làm việc với dữ liệu, tham gia khóa học Python hoặc khóa học R sẽ là những lựa chọn tuyệt vời
Tại sao bạn nên tin tưởng chúng tôi
Vì chúng tôi sẽ trình bày mã song song trong bài viết này nên bạn không thực sự cần phải “tin tưởng” vào bất cứ điều gì — bạn chỉ cần xem mã và đưa ra đánh giá của riêng mình
Tuy nhiên, đối với hồ sơ, chúng tôi không đứng về phía nào trong cuộc tranh luận giữa R và Python. Cả hai ngôn ngữ đều tuyệt vời để làm việc với dữ liệu và cả hai đều có điểm mạnh và điểm yếu. Chúng tôi dạy cả hai, vì vậy chúng tôi không quan tâm đến việc hướng bạn đến cái này hơn cái kia
R so với Python. Nhập CSV
Hãy chuyển ngay sang so sánh trong thế giới thực, bắt đầu với cách R và Python xử lý việc nhập CSV
[Khi so sánh mã, chúng tôi cũng sẽ phân tích tập dữ liệu về các cầu thủ NBA và hiệu suất của họ trong mùa giải 2013-2014. Bạn có thể tải xuống tệp tại đây nếu bạn muốn tự mình dùng thử. ]
R
library[readr]
ba
8, chứa dữ liệu về các cầu thủ NBA từ mùa giải 2013-2014, vào biến [1] 481 31
/code>
9Sự khác biệt thực sự duy nhất là trong Python, chúng ta cần nhập thư viện gấu trúc để có quyền truy cập vào Dataframes. Trong R, mặc dù chúng ta có thể nhập dữ liệu bằng cách sử dụng hàm cơ sở R là
nba.shape
0, nhưng việc sử dụng hàm thư viện nba.shape
1 là nba.shape
2 có lợi thế về tốc độ nhanh hơn và diễn giải các loại dữ liệu một cách nhất quánCác khung dữ liệu có sẵn trong cả R và Python - chúng là các mảng [ma trận] hai chiều trong đó mỗi cột có thể thuộc một kiểu dữ liệu khác nhau. Bạn có thể coi chúng giống như phiên bản lập trình của bảng dữ liệu hoặc bảng tính. Khi kết thúc bước này, tệp CSV đã được cả hai ngôn ngữ tải vào khung dữ liệu
Tìm số hàng
R
dim[nba]
[1] 481 31
/code>
con trăn
nba.shape
import pandas
ba = pandas.read_csv["nba_2013.csv"]
0Mặc dù cú pháp và định dạng hơi khác nhau, nhưng chúng ta có thể thấy rằng trong cả hai ngôn ngữ, chúng ta có thể nhận được cùng một thông tin rất dễ dàng
Đầu ra ở trên cho chúng ta biết tập dữ liệu này có 481 hàng và 31 cột
Kiểm tra hàng đầu tiên của dữ liệu
R
import pandas
ba = pandas.read_csv["nba_2013.csv"]
1import pandas
ba = pandas.read_csv["nba_2013.csv"]
2con trăn
import pandas
ba = pandas.read_csv["nba_2013.csv"]
3____12Một lần nữa, chúng ta có thể thấy rằng mặc dù có một số khác biệt nhỏ về cú pháp nhưng hai ngôn ngữ này rất giống nhau.
Cần lưu ý rằng Python ở đây hướng đối tượng nhiều hơn -
nba.shape
3 là một phương thức trên đối tượng khung dữ liệu, trong khi R có một hàm nba.shape
3 riêng biệtĐây là chủ đề chung mà chúng ta sẽ thấy khi bắt đầu phân tích các ngôn ngữ này. Python hướng đối tượng nhiều hơn và R có nhiều chức năng hơn
Đừng lo lắng nếu bạn không hiểu sự khác biệt - đây đơn giản là hai cách tiếp cận lập trình khác nhau và trong bối cảnh làm việc với dữ liệu, cả hai cách tiếp cận đều có thể hoạt động rất tốt
R so với Python. Tìm giá trị trung bình cho mỗi thống kê
Bây giờ, hãy tìm các giá trị trung bình cho từng thống kê trong tập dữ liệu của chúng tôi
Các cột, như chúng ta có thể thấy, có các tên như
nba.shape
5 [thực hiện các bàn thắng trên sân] và nba.shape
6 [kiến tạo]. Đây là số liệu thống kê theo mùa và bộ dữ liệu của chúng tôi theo dõi chúng cho từng hàng [mỗi hàng đại diện cho một người chơi riêng lẻ]Nếu bạn muốn giải thích đầy đủ hơn về tất cả các số liệu thống kê, hãy xem tại đây. Hãy xem cách R và Python xử lý số liệu thống kê tóm tắt bằng cách tìm các giá trị trung bình cho mỗi số liệu thống kê trong dữ liệu
R
import pandas
ba = pandas.read_csv["nba_2013.csv"]
0import pandas
ba = pandas.read_csv["nba_2013.csv"]
1con trăn
import pandas
ba = pandas.read_csv["nba_2013.csv"]
2____13Bây giờ chúng ta có thể thấy một số khác biệt lớn trong cách tiếp cận của R so với Python
Trong cả hai, chúng tôi đang áp dụng một chức năng trên các cột khung dữ liệu. Trong Python, sử dụng phương thức trung bình trên khung dữ liệu sẽ tìm giá trị trung bình của từng cột theo mặc định
Trong R thì phức tạp hơn một chút. Chúng ta có thể sử dụng các hàm từ hai gói phổ biến để chọn các cột mà chúng ta muốn tính trung bình và áp dụng hàm
nba.shape
7 cho chúng. Toán tử nba.shape
8, được gọi là “đường ống”, chuyển đầu ra của một hàm thành đầu vào cho hàm tiếp theo. Lấy giá trị trung bình của giá trị chuỗi [nói cách khác, dữ liệu văn bản không thể tính trung bình] sẽ chỉ dẫn đến kết quả là
nba.shape
9 — không khả dụng. Chúng ta chỉ có thể lấy giá trị trung bình của các cột số bằng cách sử dụng import pandas
ba = pandas.read_csv["nba_2013.csv"]
00. Tuy nhiên, chúng ta cần bỏ qua giá trị
nba.shape
9 khi lấy giá trị trung bình [yêu cầu chúng ta chuyển import pandas
ba = pandas.read_csv["nba_2013.csv"]
02 vào hàm nba.shape
7]. Nếu không, chúng tôi sẽ kết thúc bằng nba.shape
9 cho giá trị trung bình của các cột như import pandas
ba = pandas.read_csv["nba_2013.csv"]
05. Cột này là tỷ lệ phần trăm ba điểm. Một số người chơi đã không thực hiện cú đánh ba điểm, vì vậy tỷ lệ phần trăm của họ bị thiếu. Nếu chúng tôi thử hàm nba.shape
7 trong R, chúng tôi nhận được phản hồi nba.shape
9, trừ khi chúng tôi chỉ định import pandas
ba = pandas.read_csv["nba_2013.csv"]
02, bỏ qua các giá trị nba.shape
9 khi lấy giá trị trung bìnhNgược lại, phương thức
import pandas
ba = pandas.read_csv["nba_2013.csv"]
10 trong Python đã mặc định bỏ qua các giá trị nàyTạo biểu đồ phân tán theo cặp
Một cách phổ biến để khám phá tập dữ liệu là xem các cột khác nhau tương quan với nhau như thế nào. Hãy so sánh các cột
nba.shape
6, nba.shape
5 và import pandas
ba = pandas.read_csv["nba_2013.csv"]
13R
import pandas
ba = pandas.read_csv["nba_2013.csv"]
4con trăn
import pandas
ba = pandas.read_csv["nba_2013.csv"]
5Cuối cùng, cả hai ngôn ngữ đều tạo ra những âm mưu rất giống nhau. Nhưng trong mã, chúng ta có thể thấy hệ sinh thái khoa học dữ liệu R có nhiều gói nhỏ hơn như thế nào [GGally là gói trợ giúp cho ggplot2, gói đồ thị R được sử dụng nhiều nhất] và nhiều gói trực quan hơn nói chung
Trong Python, matplotlib là gói sơ đồ chính và seaborn là lớp được sử dụng rộng rãi trên matplotlib
Với trực quan hóa trong Python, nhìn chung có một cách chính để thực hiện điều gì đó, trong khi trong R, có nhiều gói hỗ trợ các phương pháp thực hiện khác nhau [chẳng hạn như có ít nhất nửa tá gói để tạo các biểu đồ cặp]
Một lần nữa, không có cách tiếp cận nào là “tốt hơn”, nhưng R có thể mang lại sự linh hoạt hơn về khả năng chọn và chọn gói phù hợp nhất với bạn
Lập cụm người chơi
Một cách hay khác để khám phá loại dữ liệu này là tạo các biểu đồ cụm. Những điều này sẽ cho thấy những người chơi nào giống nhau nhất
[Hiện tại, chúng ta sẽ tạo các cụm; chúng ta sẽ vẽ chúng một cách trực quan trong bước tiếp theo. ]
R
import pandas
ba = pandas.read_csv["nba_2013.csv"]
6con trăn
import pandas
ba = pandas.read_csv["nba_2013.csv"]
7Để phân cụm chính xác, chúng tôi cần xóa mọi cột không phải là số và cột có giá trị bị thiếu [
nba.shape
9, import pandas
ba = pandas.read_csv["nba_2013.csv"]
15, v.v.]Trong R, chúng tôi thực hiện việc này bằng cách áp dụng một hàm trên từng cột và xóa cột nếu cột đó có bất kỳ giá trị nào bị thiếu hoặc không phải là số. Sau đó, chúng tôi sử dụng gói cụm để thực hiện phương tiện k và tìm cụm
import pandas
ba = pandas.read_csv["nba_2013.csv"]
16 trong dữ liệu của mình. Chúng tôi đặt một hạt giống ngẫu nhiên bằng cách sử dụng import pandas
ba = pandas.read_csv["nba_2013.csv"]
17 để có thể tái tạo kết quả của mìnhTrong Python, chúng tôi sử dụng gói máy học chính của Python, scikit-learning, để phù hợp với mô hình phân cụm k-mean và lấy nhãn cụm của chúng tôi. Chúng tôi thực hiện các phương pháp rất giống nhau để chuẩn bị dữ liệu mà chúng tôi đã sử dụng trong R, ngoại trừ việc chúng tôi sử dụng các phương pháp
import pandas
ba = pandas.read_csv["nba_2013.csv"]
18 và import pandas
ba = pandas.read_csv["nba_2013.csv"]
19 để loại bỏ các cột không phải là số và các cột có giá trị bị thiếuVẽ sơ đồ người chơi theo cụm
Bây giờ chúng ta có thể vẽ sơ đồ người chơi theo cụm để khám phá các mẫu. Một cách để thực hiện việc này là trước tiên hãy sử dụng PCA để biến dữ liệu của chúng ta thành hai chiều, sau đó vẽ đồ thị và tô bóng từng điểm theo liên kết cụm
R
import pandas
ba = pandas.read_csv["nba_2013.csv"]
8con trăn
import pandas
ba = pandas.read_csv["nba_2013.csv"]
9Ở trên, chúng tôi đã tạo một biểu đồ phân tán dữ liệu của mình và tô bóng hoặc thay đổi biểu tượng của từng điểm dữ liệu theo cụm của nó
Trong R, chúng tôi đã sử dụng hàm
import pandas
ba = pandas.read_csv["nba_2013.csv"]
20, là một phần của thư viện cụm. Chúng tôi đã thực hiện PCA thông qua chức năng import pandas
ba = pandas.read_csv["nba_2013.csv"]
21 được tích hợp trong RVới Python, chúng tôi đã sử dụng lớp PCA trong thư viện scikit-learning. Chúng tôi đã sử dụng matplotlib để tạo cốt truyện
Một lần nữa, chúng ta có thể thấy rằng mặc dù cả hai ngôn ngữ đều có cách tiếp cận hơi khác nhau, nhưng kết quả cuối cùng và số lượng mã cần thiết để có được nó lại khá giống nhau
Tách dữ liệu thành các tập huấn luyện và kiểm tra
Nếu chúng ta muốn sử dụng R hoặc Python để học máy có giám sát, thì nên chia dữ liệu thành các tập huấn luyện và kiểm tra để chúng ta không bị quá khớp
Hãy so sánh cách mỗi ngôn ngữ xử lý tác vụ học máy phổ biến này
R
dim[nba]
0con trăn
dim[nba]
1So sánh Python với R, chúng ta có thể thấy rằng R được tích hợp sẵn nhiều khả năng phân tích dữ liệu hơn, như
import pandas
ba = pandas.read_csv["nba_2013.csv"]
22, import pandas
ba = pandas.read_csv["nba_2013.csv"]
23 và import pandas
ba = pandas.read_csv["nba_2013.csv"]
17, trong khi những thứ này trong Python được gọi thông qua các gói [import pandas
ba = pandas.read_csv["nba_2013.csv"]
25, import pandas
ba = pandas.read_csv["nba_2013.csv"]
26, import pandas
ba = pandas.read_csv["nba_2013.csv"]
27]Trong Python, một phiên bản gần đây của pandas đi kèm với phương thức
import pandas
ba = pandas.read_csv["nba_2013.csv"]
23 trả về một tỷ lệ hàng nhất định được lấy mẫu ngẫu nhiên từ khung dữ liệu nguồn — điều này làm cho mã ngắn gọn hơn nhiềuTrong R, có các gói giúp việc lấy mẫu đơn giản hơn, nhưng chúng không ngắn gọn hơn nhiều so với việc sử dụng hàm
import pandas
ba = pandas.read_csv["nba_2013.csv"]
23 tích hợp. Trong cả hai trường hợp, chúng tôi đặt một hạt giống ngẫu nhiên để làm cho kết quả có thể lặp lạiR so với Python. Hồi quy tuyến tính đơn biến
Tiếp tục với các tác vụ máy học phổ biến, giả sử chúng ta muốn dự đoán số lần kiến tạo cho mỗi cầu thủ từ các bàn thắng trên sân mà mỗi cầu thủ thực hiện
R
dim[nba]
2con trăn
dim[nba]
3Python ngắn gọn hơn một chút trong bước trước của chúng tôi, nhưng bây giờ R ngắn gọn hơn ở đây
Gói Scikit-learning của Python có mô hình hồi quy tuyến tính mà chúng ta có thể khớp và tạo dự đoán từ
R dựa vào các hàm
import pandas
ba = pandas.read_csv["nba_2013.csv"]
30 và import pandas
ba = pandas.read_csv["nba_2013.csv"]
31 tích hợp. import pandas
ba = pandas.read_csv["nba_2013.csv"]
31 sẽ hoạt động khác nhau tùy thuộc vào loại mô hình được trang bị được truyền vào nó — nó có thể được sử dụng với nhiều mô hình được trang bị khác nhauTính toán thống kê tóm tắt cho mô hình
Một nhiệm vụ học máy phổ biến khác
R
dim[nba]
4dim[nba]
5con trăn
dim[nba]
6dim[nba]
7Như chúng ta có thể thấy ở trên, chúng ta sẽ cần thực hiện nhiều hơn một chút trong Python so với R nếu chúng ta muốn nhận số liệu thống kê tóm tắt về mức độ phù hợp, chẳng hạn như giá trị bình phương r
Với R, chúng ta có thể sử dụng hàm
import pandas
ba = pandas.read_csv["nba_2013.csv"]
33 có sẵn để lấy thông tin về mô hình ngay lập tức. Với Python, chúng ta cần sử dụng gói statsmodels, cho phép sử dụng nhiều phương thức thống kê trong PythonChúng tôi nhận được kết quả tương tự, mặc dù nhìn chung việc phân tích thống kê bằng Python khó hơn một chút và một số phương pháp thống kê tồn tại trong R không tồn tại trong Python
Điều chỉnh mô hình rừng ngẫu nhiên
Hồi quy tuyến tính của chúng tôi hoạt động tốt trong trường hợp một biến, nhưng giả sử chúng tôi nghi ngờ có thể có sự phi tuyến tính trong dữ liệu. Vì vậy, chúng tôi muốn phù hợp với một mô hình rừng ngẫu nhiên
Đây là cách chúng tôi có thể làm điều đó trong từng ngôn ngữ
R
dim[nba]
8con trăn
dim[nba]
9Sự khác biệt chính ở đây là chúng tôi cần sử dụng thư viện RandomForest trong R để sử dụng thuật toán, trong khi thuật toán này đã được tích hợp sẵn để học scikit trong Python
Scikit-learning có giao diện hợp nhất để làm việc với nhiều thuật toán học máy khác nhau trong Python. Thường chỉ có một triển khai chính của mỗi thuật toán
Với R, có nhiều gói nhỏ hơn chứa các thuật toán riêng lẻ, thường có cách truy cập chúng không nhất quán. Điều này dẫn đến sự đa dạng hơn của các thuật toán [nhiều thuật toán có một số triển khai và một số mới ra khỏi phòng thí nghiệm nghiên cứu], nhưng có một chút ảnh hưởng đến khả năng sử dụng
Nói cách khác, Python có thể dễ sử dụng hơn ở đây, nhưng R có thể linh hoạt hơn
Lỗi tính toán
Bây giờ chúng ta đã có hai mô hình phù hợp, hãy tính toán lỗi trong R và Python. Chúng tôi sẽ sử dụng MSE
R
[1] 481 31
/code>
0[1] 481 31
/code>
1con trăn
[1] 481 31
/code>
2____23Trong Python, thư viện scikit-learning có nhiều chỉ số lỗi mà chúng ta có thể sử dụng. Trong R, có khả năng một số thư viện nhỏ hơn tính toán MSE, nhưng thực hiện thủ công khá dễ dàng bằng cả hai ngôn ngữ
Bạn có thể nhận thấy có một sự khác biệt nhỏ trong các kết quả ở đây — điều đó gần như chắc chắn là do điều chỉnh tham số và không phải là vấn đề lớn
[Nếu bạn tự chạy mã này, bạn cũng có thể nhận được các số khác nhau một chút, tùy thuộc vào phiên bản của từng gói và ngôn ngữ bạn đang sử dụng]
R so với Python. Quét web, Phần 1
Chúng tôi có dữ liệu về các cầu thủ NBA từ năm 2013-2014, nhưng hãy quét một số dữ liệu bổ sung để bổ sung cho nó
Chúng tôi sẽ chỉ xem xét một điểm số từ Chung kết NBA ở đây để tiết kiệm thời gian
R
[1] 481 31
/code>
4con trăn
[1] 481 31
/code>
5Trong Python, gói yêu cầu giúp việc tải xuống các trang web trở nên đơn giản, với API nhất quán cho tất cả các loại yêu cầu
Trong R, RCurl cung cấp một cách đơn giản tương tự để thực hiện các yêu cầu
Cả hai đều tải trang web về kiểu dữ liệu ký tự
Ghi chú. bước này không cần thiết cho bước tiếp theo trong R, nhưng được hiển thị để so sánh
Quét web, Phần 2
Bây giờ chúng tôi đã tải xuống trang web bằng cả Python và R, chúng tôi sẽ cần phân tích cú pháp để trích xuất điểm số cho người chơi
R
[1] 481 31
/code>
6con trăn
[1] 481 31
/code>
7Trong cả hai ngôn ngữ, mã này sẽ tạo một danh sách chứa hai danh sách
- Điểm hộp cho
34import pandas ba = pandas.read_csv["nba_2013.csv"]
- Điểm hộp cho
35import pandas ba = pandas.read_csv["nba_2013.csv"]
Cả hai danh sách đều chứa tiêu đề, cùng với từng người chơi và số liệu thống kê trong trò chơi của họ. Bây giờ chúng tôi sẽ không biến dữ liệu này thành nhiều dữ liệu đào tạo hơn, nhưng nó có thể dễ dàng được chuyển thành định dạng có thể được thêm vào khung dữ liệu
[1] 481 31
/code>
9 của chúng tôiMã R phức tạp hơn mã Python, vì không có cách nào thuận tiện để sử dụng biểu thức chính quy để chọn các mục, vì vậy chúng tôi phải thực hiện phân tích cú pháp bổ sung để lấy tên nhóm từ HTML
R cũng không khuyến khích sử dụng các vòng lặp
import pandas
ba = pandas.read_csv["nba_2013.csv"]
37 để áp dụng các hàm dọc theo vectơ. Chúng tôi sử dụng import pandas
ba = pandas.read_csv["nba_2013.csv"]
38 để làm điều này, nhưng vì chúng tôi cần xử lý từng hàng khác nhau tùy thuộc vào việc đó có phải là tiêu đề hay không, nên chúng tôi chuyển chỉ mục của mục chúng tôi muốn và toàn bộ danh sách import pandas
ba = pandas.read_csv["nba_2013.csv"]
39 vào hàmTrong R, chúng tôi sử dụng
import pandas
ba = pandas.read_csv["nba_2013.csv"]
20, gói quét web R được sử dụng rộng rãi để trích xuất dữ liệu chúng tôi cần. Lưu ý rằng chúng ta có thể chuyển một url trực tiếp vào rvest, vì vậy bước trước đó thực sự không cần thiết trong RTrong Python, chúng tôi sử dụng BeautifulSoup, gói quét web được sử dụng phổ biến nhất. Nó cho phép chúng tôi lặp qua các thẻ và xây dựng danh sách các danh sách một cách đơn giản
R so với Python. Cái nào tốt hơn?
Bây giờ chúng ta đã xem cách phân tích tập dữ liệu bằng cả R và Python. Và như chúng ta có thể thấy, mặc dù chúng làm mọi thứ hơi khác một chút, nhưng cả hai ngôn ngữ đều có xu hướng yêu cầu cùng một lượng mã để đạt được cùng một đầu ra
Tất nhiên, có nhiều nhiệm vụ chúng tôi chưa đi sâu vào, chẳng hạn như duy trì kết quả phân tích của mình, chia sẻ kết quả với người khác, thử nghiệm và làm cho mọi thứ sẵn sàng sản xuất cũng như tạo thêm hình ảnh trực quan
Còn rất nhiều điều để thảo luận về chủ đề này, nhưng chỉ dựa trên những gì chúng tôi đã làm ở trên, chúng tôi có thể rút ra một số kết luận có ý nghĩa về sự khác biệt của hai chủ đề này.
[Theo như cái nào thực sự tốt hơn, đó là vấn đề sở thích cá nhân. ]
R có nhiều chức năng hơn, Python hướng đối tượng hơn
Như chúng ta đã thấy từ các hàm như
import pandas
ba = pandas.read_csv["nba_2013.csv"]
30, import pandas
ba = pandas.read_csv["nba_2013.csv"]
31 và các hàm khác, R cho phép các hàm thực hiện hầu hết công việc. Đối chiếu điều này với lớp import pandas
ba = pandas.read_csv["nba_2013.csv"]
23 trong Python và phương thức import pandas
ba = pandas.read_csv["nba_2013.csv"]
23 trên DataframesVề mặt phân tích dữ liệu và khoa học dữ liệu, một trong hai cách tiếp cận đều hiệu quả.
R có nhiều chức năng phân tích dữ liệu tích hợp hơn, Python dựa trên các gói.
Khi chúng tôi xem số liệu thống kê tóm tắt, chúng tôi có thể sử dụng hàm dựng sẵn
import pandas
ba = pandas.read_csv["nba_2013.csv"]
33 trong R, nhưng phải nhập gói import pandas
ba = pandas.read_csv["nba_2013.csv"]
26 trong Python. Dataframe là cấu trúc tích hợp trong R, nhưng phải được nhập qua gói import pandas
ba = pandas.read_csv["nba_2013.csv"]
27 trong PythonPython có các gói "chính" cho các tác vụ phân tích dữ liệu, R có hệ sinh thái lớn hơn gồm các gói nhỏ
Với Python, chúng ta có thể thực hiện hồi quy tuyến tính, rừng ngẫu nhiên, v.v. với gói scikit-learn. Nó cung cấp một API nhất quán và được duy trì tốt
Trong R, chúng tôi có nhiều gói đa dạng hơn, nhưng cũng có sự phân mảnh lớn hơn và kém nhất quán hơn [hồi quy tuyến tính là một gói tích hợp,
import pandas
ba = pandas.read_csv["nba_2013.csv"]
30, import pandas
ba = pandas.read_csv["nba_2013.csv"]
29 là một gói riêng biệt, v.v.]R có nhiều hỗ trợ thống kê hơn nói chung
R được xây dựng như một ngôn ngữ thống kê, và nó cho thấy.
import pandas
ba = pandas.read_csv["nba_2013.csv"]
26 trong Python và các gói khác cung cấp phạm vi phù hợp cho các phương pháp thống kê, nhưng hệ sinh thái R lớn hơn nhiềuViệc thực hiện các tác vụ phi thống kê trong Python thường đơn giản hơn
Với các thư viện được duy trì tốt như BeautifulSoup và các yêu cầu, việc tìm kiếm trang web trong Python đơn giản hơn trong R
Điều này cũng áp dụng cho các tác vụ khác mà chúng tôi chưa xem xét kỹ lưỡng, chẳng hạn như lưu vào cơ sở dữ liệu, triển khai máy chủ web hoặc chạy các quy trình công việc phức tạp
Vì Python được sử dụng trong nhiều ngành và lĩnh vực lập trình khác nhau, nên nó có thể là lựa chọn tốt hơn nếu bạn đang kết hợp công việc dữ liệu của mình với các loại tác vụ lập trình khác
Mặt khác, nếu bạn tập trung vào dữ liệu và số liệu thống kê, R sẽ mang lại một số lợi thế do nó được phát triển tập trung vào số liệu thống kê.
Có nhiều điểm tương đồng giữa quy trình phân tích dữ liệu ở cả hai.
Có những điểm tương đồng rõ ràng giữa cả R và Python [Pandas Dataframes được lấy cảm hứng từ R dataframes, gói rvest được lấy cảm hứng từ BeautifulSoup] và cả hai hệ sinh thái tiếp tục phát triển mạnh mẽ hơn
Trên thực tế, điều đáng chú ý là cú pháp và cách tiếp cận giống nhau như thế nào đối với nhiều tác vụ phổ biến ở cả hai ngôn ngữ
R so với Python. Bạn nên học cái nào?
Tại Dataquest, chúng tôi được biết đến nhiều nhất với các khóa học Python, nhưng chúng tôi đã làm lại hoàn toàn và khởi chạy lại Nhà phân tích dữ liệu của mình trong con đường R vì chúng tôi cảm thấy R là một ngôn ngữ tuyệt vời khác cho khoa học dữ liệu
Chúng tôi xem cả hai ngôn ngữ là bổ sung cho nhau và mỗi ngôn ngữ đều có điểm mạnh và điểm yếu. Một trong hai ngôn ngữ có thể được sử dụng làm công cụ phân tích dữ liệu duy nhất của bạn, vì hướng dẫn này chứng minh. Cả hai ngôn ngữ đều có rất nhiều điểm tương đồng về cú pháp và cách tiếp cận, và bạn không thể sai với bất kỳ ngôn ngữ nào
Cuối cùng, bạn có thể muốn học Python và R để có thể tận dụng thế mạnh của cả hai ngôn ngữ, chọn ngôn ngữ này hoặc ngôn ngữ kia trên cơ sở từng dự án tùy thuộc vào nhu cầu của bạn
Và tất nhiên, biết cả hai cũng giúp bạn trở thành một ứng viên linh hoạt hơn nếu bạn đang tìm kiếm một vị trí trong thế giới khoa học dữ liệu