Bạn nên học python hay r trước?

Trong 2 năm qua, tôi đã sử dụng cả hai ngôn ngữ cho các dự án Khoa học dữ liệu và Máy học của mình. Nếu bạn muốn bắt đầu trong lĩnh vực này, tôi thực sự khuyên bạn nên bắt đầu học Python trước và sau vài tháng bạn đã quen với nó, bạn có thể học R. Tin tôi đi, bạn sẽ nhận ra rằng cả hai ngôn ngữ đều có cú pháp dễ học

Những lý do

Tại sao tôi khuyên bạn nên học Python trước mà không phải cả hai?

Python có rất nhiều ứng dụng

Python là một ngôn ngữ phổ biến cho khoa học máy tính. Ngôn ngữ này rất phổ biến vì nó có cú pháp dễ hiểu và cũng là mã nguồn mở. Điều đó có nghĩa là ngôn ngữ này đang được cộng đồng trên toàn thế giới đóng góp và bạn có thể làm bất cứ thứ gì bằng cách sử dụng nó, ví dụ như tạo trò chơi, ứng dụng web, tự động hóa những thứ thực sự nhàm chán và cả khoa học dữ liệu

Đối với người mới, Python khó nhưng đáng để học

Đối với những người lần đầu tiên đến với lĩnh vực khoa học dữ liệu, có thể bạn chưa có kinh nghiệm sử dụng bất kỳ ngôn ngữ lập trình nào. Từ góc độ khoa học máy tính, Python rất dễ học, nhưng tôi biết rằng có thể bạn không nghĩ điều đó dễ dàng. Bạn có thể dành thời gian học ngôn ngữ lập trình trước khi chuyển sang ngôn ngữ khác, chẳng hạn như R. Sau khi bạn quen với nó, sau đó bạn có thể khám phá bất kỳ ngôn ngữ nào khác. Nhưng hãy nhớ, chỉ học những nguyên tắc cơ bản và sau đó tạo dự án của riêng bạn bằng cách sử dụng nó

Các thư viện Deep Learning chủ yếu hoạt động trên Python

Đây là những gì tôi nghĩ là bất lợi của ngôn ngữ R. Có thể nó có một số thư viện có thể được sử dụng cho Deep Learning, chẳng hạn như Keras và TensorFlow, nhưng nó vẫn cần Python cho phần phụ trợ của nó. Nếu bạn cũng quan tâm đến học sâu, tôi thực sự khuyên bạn nên học Python trước và dành hàng tháng trời cho nó

Đó là lý do chính mà tôi có thể đưa ra cho bạn lý do tại sao bạn nên học Python ngay từ đầu, ngay cả khi bạn chưa quen với ngôn ngữ lập trình hay bạn là người mới trong lĩnh vực khoa học dữ liệu

so sánh

Vì vậy, tại sao tôi không khuyên bạn nên học R trước nếu bạn chưa quen với khoa học dữ liệu hoặc có thể là lập trình?

Lý do chính mà tôi không muốn bạn học R trước là vì cú pháp của nó rất dễ học, đặc biệt là trên thư viện khoa học dữ liệu của họ, ví dụ ggplot2, dplyr, thậm chí, v.v. Hãy xem những dòng tweet mà tôi đã cười rất nhiều gần đây,

Và một cái khác,

Có lẽ bạn không hiểu ngay bây giờ, đặc biệt là những người mới làm quen với khoa học dữ liệu, nhưng nó khiến tôi vui vẻ vì những dòng tweet này. Tôi phải nói rằng những gì họ vừa nói là sự thật, ý tôi là

Lý do là các gói dplyr và ggplot2 có cú pháp độc đáo và dễ học hơn là các thư viện python như pandas và matplotlib

Để tôi đưa cho bạn một số ví dụ, đặc biệt là về cách bạn thao tác dữ liệu và trực quan hóa dữ liệu bằng Python và R. Tôi sẽ sử dụng bộ dữ liệu Coronavirus của Đại học John Hopkins cho lần này để chứng minh cho bạn thấy cả hai ngôn ngữ đều thực hiện nhiệm vụ như thế nào

Giả sử chúng tôi muốn tạo một biểu đồ đường bao gồm 10 trường hợp được xác nhận nhiều nhất trên thế giới

Đây là cách để làm điều này trên Python,

# Import the data
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv")
# Get the columns
get_top_10 = df.iloc[:,[0, 1, 2, -1]]
# Summarize by country/region
get_top_10 = get_top_10.groupby(['Country/Region']).sum().reset_index()
# Sort by the value and get the top 10
get_top_10 = get_top_10.sort_values('5/17/20', ascending=False)
# Convert it as an array
countries = get_top_10.iloc[:10, 0].values
# Melt (Pivot) the table
df_tidy = df.melt(id_vars=df.columns[:4], var_name='date')
# Set the date column type as datetime
df_tidy['date'] = pd.to_datetime(df_tidy['date'])
# Group by countries and dates
df_tidy = df_tidy.groupby(['Country/Region', 'date']).sum().reset_index()
# Filter it by top 10 countries
df_tidy = df_tidy[df_tidy['Country/Region'].isin(countries)]
df_tidy.head()
# Create the plot
import seaborn as sns
import matplotlib.pyplot as plt
sns.lineplot(x='date', y='value', hue='Country/Region', data=df_tidy)

Đây là kết quả,

Và sau đó, hãy xem cách R làm điều này,

# Import the data
library(readr)
confirmed <- read_csv("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv")
head(confirmed)
# Get the 10 most confirmed cases countries
library(dplyr)
get_top_10 <- confirmed %>%
select(`Country/Region`, "5/17/20")
colnames(get_top_10) <- c("country", "total")
get_top_10 %>%
arrange(desc(total)) %>%
top_n(10) %>%
select(country)
countries <- c("US", "Russia", "United Kingdom", "Brazil", "Spain", "Italy", "France", "Germany", "Turkey", "Iran")# Make the data prepared for analysis by tidying it
library(tidyr)
confirmed_tidy <- confirmed %>%
pivot_longer(5:(length(colnames(confirmed))), names_to = "date", values_to = "total")
colnames(confirmed_tidy) <- c("province", "country", "lat", "long", "date", "total")
confirmed_tidy$date <- as.Date(confirmed_tidy$date, format="%m/%d/%y")
confirmed_tidy
# Summarize for countries that have province on it
library(ggplot2)
confirmed_tidy %>%
group_by(country, date) %>%
summarise(total = sum(total)) %>%
ungroup() %>%
filter(country %in% countries) %>%

# Create line plot from it
ggplot(aes(x=date, y=total, color=country)) +
geom_line()

Đây là kết quả,

Vì vậy, dựa trên những ví dụ này, bạn thích sử dụng cái nào hơn?

Phần kết luận

Tóm lại, Python và R có khả năng riêng. Học cái nào trước, mình khuyên bạn nên học Python trước hơn là R

Bên cạnh tất cả các lý do mà tôi đã đưa ra ở trên, Python có cú pháp hướng đối tượng hơn R sử dụng một hàm để thực hiện nó, nhưng cả hai đều có cùng khả năng. Nếu bạn đầu tư học python nhiều hơn, thì bạn sẽ quen với cú pháp lập trình, đặc biệt là cú pháp lập trình hướng đối tượng. Nếu bạn đầu tư nhiều vào R, có thể bạn sẽ thích cú pháp, nhưng đừng học nó lúc đầu vì bạn sẽ không có cảm giác về lập trình hướng đối tượng

Tôi không muốn khuyến khích bạn học R, nhưng bạn có hiểu nếu bạn học R trước chứ không phải Python không?

Mặc dù vậy, tôi vẫn khuyên bạn nên học Python trước vì khi bạn học Python, bạn có thể học các ngôn ngữ khác một cách dễ dàng

R có khó học hơn Python không?

Trường hợp cho Python

Tôi có nên học Python và R cùng một lúc không?

Mặc dù có nhiều ngôn ngữ và lĩnh vực để lựa chọn, nhưng một số ngôn ngữ và lĩnh vực phổ biến nhất là R và Python. Bạn hoàn toàn có thể học cả hai cùng một lúc . Nói chung, Python linh hoạt hơn. nó được phát triển như một ngôn ngữ lập trình có mục đích chung và đã phát triển để trở nên tuyệt vời cho khoa học dữ liệu.

Tôi có thể học Python sau R không?

Bạn sẽ thành thạo python nhanh như khi bạn thành thạo R ngay lập tức . Có nhiều người đi trước bạn có kinh nghiệm đi từ ngôn ngữ này sang ngôn ngữ khác.

Tôi có nên học R như ngôn ngữ đầu tiên của mình không?

Nếu bạn mới bắt đầu, R gần như chắc chắn là lựa chọn tốt nhất . Và, thực sự tập trung vào việc học các kỹ năng về khoa học dữ liệu.