Hướng dẫn apply and lambda in python - apply và lambda trong python

Giới thiệu

Đối với các vòng là phản đề của lập trình hiệu quả. Họ vẫn còn cần thiết và là những vòng lặp có điều kiện đầu tiên được dạy cho những người mới bắt đầu Python nhưng theo tôi, họ để lại rất nhiều điều mong muốn.

Chúng cho các vòng lặp có thể cồng kềnh và có thể làm cho mã Python của chúng tôi cồng kềnh và không gọn gàng. Nhưng chờ đã - những gì giải pháp thay thế? Chức năng của Lambda trong Python!

Các chức năng Lambda cung cấp một sự thúc đẩy kép cho một nhà khoa học dữ liệu. Bạn có thể viết mã Python gọn gàng hơn và tăng tốc các nhiệm vụ học máy của bạn. Bí quyết nằm ở việc làm chủ các chức năng Lambda và đây là nơi người mới bắt đầu có thể đi lên.

Hướng dẫn apply and lambda in python - apply và lambda trong python

Ban đầu, tôi cũng thấy các chức năng Lambda khó hiểu. Chúng có chiều dài ngắn nhưng có thể có vẻ khó hiểu như một người mới đến. Nhưng một khi tôi hiểu làm thế nào để sử dụng chúng trong Python, tôi thấy chúng rất dễ dàng và mạnh mẽ. Và tôi chắc chắn rằng bạn cũng sẽ đến cuối hướng dẫn này.

Vì vậy, trong bài viết này, bạn sẽ tìm hiểu về sức mạnh của các chức năng Lambda trong Python và cách sử dụng chúng. Hãy bắt đầu nào!

Lưu ý: Mới đối với Python? Tôi đặc biệt khuyên bạn nên kiểm tra các khóa học miễn phí dưới đây để bắt đầu cào:

  • Python cho khoa học dữ liệu
  • Gấu trúc để phân tích dữ liệu trong Python

Hàm Lambda là một hàm nhỏ chứa một biểu thức duy nhất. Các chức năng của Lambda cũng có thể hoạt động như các chức năng ẩn danh trong đó chúng không yêu cầu bất kỳ tên nào. Đây là những điều rất hữu ích khi chúng ta phải thực hiện các nhiệm vụ nhỏ với ít mã hơn.

Chúng ta cũng có thể sử dụng các hàm Lambda khi chúng ta phải chuyển một hàm nhỏ cho một chức năng khác. Đừng lo lắng - chúng tôi sẽ sớm đưa ra chi tiết về vấn đề này khi chúng tôi thấy cách sử dụng các chức năng Lambda trong Python.

Các chức năng của Lambda lần đầu tiên được giới thiệu bởi Nhà thờ Alonzo vào những năm 1930. Ông Church nổi tiếng với Tính toán Lambda và luận án về nhà thờ.

Các hàm Lambda rất tiện dụng và được sử dụng trong nhiều ngôn ngữ lập trình nhưng chúng tôi sẽ tập trung vào việc sử dụng chúng trong Python ở đây. Trong Python, các hàm Lambda có cú pháp sau:In Python, lambda functions have the following syntax:

Hướng dẫn apply and lambda in python - apply và lambda trong python

Các hàm Lambda bao gồm ba phần:

  • Từ khóa
  • Biến bị ràng buộc/đối số và
  • Cơ thể hoặc biểu hiện

Từ khóa là bắt buộc, và nó phải là một lambda, trong khi các đối số và cơ thể có thể thay đổi dựa trên các yêu cầu. Bạn phải tự hỏi tại sao bạn nên sử dụng các chức năng Lambda khi bạn có các chức năng thường xuyên khác. Câu hỏi công bằng - Hãy để tôi giải thích về điều này.lambda, whereas the arguments and body can change based on the requirements. You must be wondering why you should go for lambda functions when you have other regular functions. Fair question – let me elaborate on this.

So sánh các hàm Lamba với các chức năng thường xuyên

Hướng dẫn apply and lambda in python - apply và lambda trong python

Các hàm Lambda được xác định bằng cách sử dụng từ khóa Lambda. Họ có thể có bất kỳ số lượng đối số nhưng chỉ có một biểu thức. Hàm Lambda không thể chứa bất kỳ câu lệnh nào và nó trả về một đối tượng hàm có thể được gán cho bất kỳ biến nào. Chúng thường được sử dụng cho các biểu thức một dòng.lambda. They can have any number of arguments but only one expression. A lambda function cannot contain any statements, and it returns a function object which can be assigned to any variable. They are generally used for one-line expressions.

Các chức năng thường xuyên được tạo bằng cách sử dụng từ khóa DEF. Họ có thể có bất kỳ số lượng đối số và bất kỳ số biểu thức nào. Chúng có thể chứa bất kỳ câu lệnh nào và thường được sử dụng cho các khối mã lớn.def keyword. They can have any number of arguments and any number of expressions. They can contain any statements and are generally used for large blocks of code.

Iifes sử dụng các hàm Lambda

IIfes ngay lập tức được gọi các biểu thức chức năng. Đây là các chức năng được thực thi ngay khi chúng được tạo. IIfes không yêu cầu cuộc gọi rõ ràng để gọi chức năng. Trong Python, IIfes có thể được tạo bằng hàm Lambda.

Ở đây, tôi đã tạo ra một iife trả về khối lập phương của một số:

Mã Python:

Đáng kinh ngạc!

Áp dụng các chức năng Lambda với các chức năng khác nhau

Thời gian để nhảy vào Python! Fun lên sổ ghi chép Jupyter của bạn và để cho bị nứt.

Ở đây, tôi đã tạo ra một bộ dữ liệu ngẫu nhiên có chứa thông tin về một gia đình gồm 5 người có ID, tên, lứa tuổi và thu nhập của họ mỗi tháng. Tôi sẽ sử dụng DataFrame này để chỉ cho bạn cách áp dụng các hàm Lambda bằng các hàm khác nhau trên DataFrame trong Python.

Mã Python:

Hướng dẫn apply and lambda in python - apply và lambda trong python

Đáng kinh ngạc!

Áp dụng các chức năng Lambda với các chức năng khác nhauapply() function in Pandas.

Thời gian để nhảy vào Python! Fun lên sổ ghi chép Jupyter của bạn và để cho bị nứt. function calls the lambda function and applies it to every row or column of the dataframe and returns a modified copy of the dataframe:

df['age']=df.apply(lambda x: x['age']+3,axis=1)

Hướng dẫn apply and lambda in python - apply và lambda trong python

Ở đây, tôi đã tạo ra một bộ dữ liệu ngẫu nhiên có chứa thông tin về một gia đình gồm 5 người có ID, tên, lứa tuổi và thu nhập của họ mỗi tháng. Tôi sẽ sử dụng DataFrame này để chỉ cho bạn cách áp dụng các hàm Lambda bằng các hàm khác nhau trên DataFrame trong Python. apply() function to apply the lambda function to both rows and columns of a dataframe. If the axis argument in the apply() function is 0, then the lambda function gets applied to each column, and if 1, then the function gets applied to each row.

Lambda với áp dụng function can also be applied directly to a Pandas series:

df['age']=df['age'].apply(lambda x: x+3)

Hướng dẫn apply and lambda in python - apply và lambda trong python

Hãy nói rằng chúng tôi có một lỗi trong biến độ tuổi. Chúng tôi đã ghi nhận độ tuổi với sự khác biệt là 3 năm. Vì vậy, để loại bỏ lỗi này khỏi khung dữ liệu gấu trúc, chúng ta phải thêm ba năm vào mỗi người tuổi. Chúng ta có thể làm điều này với hàm application () trong gấu trúc.

Hàm áp dụng () gọi hàm Lambda và áp dụng nó cho mỗi hàng hoặc cột của DataFrame và trả về một bản sao đã sửa đổi của DataFrame:

Chúng ta có thể sử dụng hàm application () để áp dụng hàm lambda cho cả hai hàng và cột của dataFrame. Nếu đối số trục trong hàm application () là 0, thì hàm lambda được áp dụng cho mỗi cột và nếu 1, thì hàm được áp dụng cho mỗi hàng.filter() function. The filter() function takes a lambda function and a Pandas series and applies the lambda function on the series and filters the data.

Điều này trả về một chuỗi True và & NBSP; Sai, mà chúng tôi sử dụng để lọc dữ liệu. Do đó, kích thước đầu vào của hàm bản đồ () luôn lớn hơn kích thước đầu ra.True and False, which we use for filtering the data. Therefore, the input size of the map() function is always greater than the output size.

list(filter(lambda x: x>18,df['age']))

Hướng dẫn apply and lambda in python - apply và lambda trong python

Lambda với bản đồ

Bạn có thể liên quan đến tuyên bố tiếp theo. Đó là thời gian thẩm định hiệu suất và thu nhập của tất cả nhân viên được tăng 20%. Điều này có nghĩa là chúng tôi phải tăng lương của mỗi người lên 20% trong khung dữ liệu gấu trúc của chúng tôi.

Chúng ta có thể làm điều này bằng cách sử dụng hàm map (). Hàm bản đồ () này ánh xạ chuỗi theo thư từ đầu vào. Nó rất hữu ích khi chúng ta phải thay thế một chuỗi bằng các giá trị khác. Trong các hàm map (), kích thước của đầu vào bằng kích thước của đầu ra.map() function. This map() function maps the series according to input correspondence. It is very helpful when we have to substitute a series with other values. In map() functions, the size of the input is equal to the size of the output.

df['income']=list(map(lambda x: int(x+x*0.2),df['income']))

Hướng dẫn apply and lambda in python - apply và lambda trong python

Lambda với giảm

Bây giờ, hãy để Lừa thấy tổng thu nhập của gia đình. Để tính toán điều này, chúng ta có thể sử dụng hàm giảm () trong Python. Nó được sử dụng để áp dụng một chức năng cụ thể vào danh sách các phần tử trong chuỗi. Hàm giảm () được xác định trong mô -đun ‘functools.reduce() function in Python. It is used to apply a particular function to the list of elements in the sequence. The reduce() function is defined in the ‘functools’ module.

Để sử dụng hàm giảm (), chúng tôi phải nhập mô -đun functools trước:reduce() function, we have to import the functools module first:

import functools
functools.reduce(lambda a,b: a+b,df['income'])

Hướng dẫn apply and lambda in python - apply và lambda trong python

Hướng dẫn apply and lambda in python - apply và lambda trong python

Hàm giảm () áp dụng hàm LambDA cho hai phần tử đầu tiên của chuỗi và trả về kết quả. Sau đó, nó lưu trữ kết quả đó và một lần nữa áp dụng chức năng Lambda tương tự cho kết quả và phần tử tiếp theo trong chuỗi. Do đó, nó làm giảm chuỗi thành một giá trị duy nhất. function applies the lambda function to the first two elements of the series and returns the result. Then, it stores that result and again applies the same lambda function to the result and the next element in the series. Thus, it reduces the series to a single value.

Lưu ý: Các hàm Lambda trong giảm () không thể mất nhiều hơn hai đối số. Lambda functions in reduce() cannot take more than two arguments.

Các câu lệnh có điều kiện sử dụng các hàm Lambda

Các chức năng Lambda cũng hỗ trợ các tuyên bố có điều kiện, chẳng hạn như nếu..else. Điều này làm cho các chức năng Lambda rất mạnh mẽ.

Hãy nói trong bản dữ liệu gia đình, chúng tôi phải phân loại mọi người thành ’người lớn hay’ trẻ con. Đối với điều này, chúng tôi chỉ có thể áp dụng chức năng Lambda cho DataFrame của chúng tôi:

df['category']=df['age'].apply(lambda x: 'Adult' if x>=18 else 'Child')

Hướng dẫn apply and lambda in python - apply và lambda trong python

Ở đây, bạn có thể thấy Ryan là đứa trẻ duy nhất trong gia đình này và phần còn lại là người lớn. Điều đó thật khó khăn, phải không?

Cái gì tiếp theo?

Các chức năng Lambda khá hữu ích khi bạn làm việc với rất nhiều mã lặp. Chúng có vẻ phức tạp, tôi hiểu, nhưng tôi chắc chắn rằng bạn sẽ nắm bắt được tầm quan trọng của chúng trong hướng dẫn này.

Không chia sẻ bài viết này và nhận xét dưới đây trong trường hợp bạn có bất kỳ truy vấn hoặc phản hồi nào. Ở đây, tôi đã liệt kê một số blog và khóa học chuyên sâu liên quan đến khoa học dữ liệu và Python:

Courses:

  • Python cho khoa học dữ liệu
  • Khoa học dữ liệu hack, mẹo và thủ thuật
  • Giới thiệu về Khoa học dữ liệu
  • Một con đường học tập toàn diện để trở thành một nhà khoa học dữ liệu vào năm 2020

Blogs:

  • Con đường học tập toàn diện - Khoa học dữ liệu trong Python
  • Cách sử dụng LỘC và ILOC để chọn dữ liệu trong gấu trúc (với mã Python!)

Việc sử dụng Ứng dụng () trong Python là gì?

Phương thức application () cho phép bạn áp dụng một hàm dọc theo một trong trục của dataFrame, mặc định 0, là trục chỉ mục (hàng).allows you to apply a function along one of the axis of the DataFrame, default 0, which is the index (row) axis.

Có phải áp dụng Lambda nhanh hơn so với Loop Python không?

Phương thức Ứng dụng () - nhanh hơn 811 lần chúng ta có thể sử dụng áp dụng với hàm Lambda.Tất cả chúng ta phải làm điều đó để chỉ định trục.Trong trường hợp này, chúng tôi phải sử dụng Axis = 1 vì chúng tôi muốn thực hiện hoạt động khôn ngoan về cột: Mã này thậm chí còn nhanh hơn các phương thức trước đó và mất 27 mili giây để hoàn thành.811 times faster We can use apply with a Lambda function. All we have to do it to specify the axis. In this case we have to use axis=1 because we want to perform a column-wise operation: This code is even faster than the previous methods and took 27 milliseconds to be finished.

Làm thế nào để bạn áp dụng chức năng Lambda cho cột DataFrame trong Python?

Áp dụng chức năng Lambda cho cột đơn Bạn có thể áp dụng chức năng Lambda cho một cột duy nhất trong khung dữ liệu.Ví dụ sau sẽ trừ mọi giá trị ô bằng 2 cho cột A - DF ["A"] = DF ["A"].Áp dụng (Lambda X: X-2).Năng suất dưới đầu ra.apply(lambda x:x-2) . Yields below output.

Làm thế nào để bạn sử dụng lambda trong gấu trúc?

Chúng ta có thể làm điều này với hàm application () trong gấu trúc.Chúng ta có thể sử dụng hàm application () để áp dụng hàm lambda cho cả hai hàng và cột của dataFrame.Nếu đối số trục trong hàm application () là 0, thì hàm lambda được áp dụng cho mỗi cột và nếu 1, thì hàm được áp dụng cho mỗi hàng.with the apply() function in Pandas. We can use the apply() function to apply the lambda function to both rows and columns of a dataframe. If the axis argument in the apply() function is 0, then the lambda function gets applied to each column, and if 1, then the function gets applied to each row.