hàm bin[] được sử dụng để chuyển đổi một số thành nhị phân. Nếu bạn chuyển một số vào hàm bin[], thì hàm này sẽ trả về biểu diễn nhị phân của số đó
Số nhị phân trong Python bắt đầu bằng 0b. Kết quả của hàm bin[] cũng bắt đầu bằng 0b. Đừng nhầm lẫn với điều đó
Hàm bin[] chuyển đổi một số thập phân thành nhị phân. Bạn có thể sử dụng số nguyên dương hoặc số nguyên âm làm tham số cần chuyển đổi
cú pháp
Dưới đây là cú pháp của hàm
bin[n] Parameters : an integer to convert Return Value : A binary string of an integer or int object. Exceptions : Raises TypeError when a float value is sent as argument.
Trong ví dụ dưới đây, chúng tôi chuyển đổi một số nguyên dương và một số nguyên âm thành nhị phân. Kết quả đưa ra với tiền tố 0b để cho biết rằng số đó là biểu diễn nhị phân
Ví dụ
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]
đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
Write the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b11111
Nếu chúng ta không muốn tiền tố 0b ở phía trước số được chuyển đổi, thì chúng ta cần áp dụng hàm chuỗi để loại bỏ 2 ký tự đầu tiên
Binning còn được gọi là nhóm hoặc rời rạc hóa là một kỹ thuật xử lý trước dữ liệu phổ biến được sử dụng để nhóm các khoảng thời gian dữ liệu liên tục thành "thùng" hoặc "nhóm". Trong bài viết này, chúng ta sẽ thảo luận về 4 phương pháp để tạo các giá trị số bằng thư viện python Pandas
Ảnh của Pawel Czerwinski trên BaptMethods
Chúng tôi tạo dữ liệu tổng hợp sau đây cho mục đích minh họa
import pandas as pd # version 1.3.5
import numpy as npdef create_df[]: df = pd.DataFrame[{'score': np.random.randint[0,101,1000]}] return dfdf = create_df[]df.head[]
Dữ liệu bao gồm điểm học tập từ 0 đến 100 cho 1000 sinh viên. Nhiệm vụ là sắp xếp các điểm số thành các loại giá trị “A”, “B” và “C” trong đó “A” là điểm tốt nhất và “C” là điểm kém hơn
Hình ảnh của tác giả1. giữa & loc
Phương thức
df.loc[df['score'].between[0, 50, 'both'], 'grade'] = 'C'
0 của Pandas trả về một vectơ boolean chứa True ở bất kỳ đâu mà phần tử Sê-ri tương ứng nằm giữa các giá trị biên trái và phải[1]
df.loc[df['score'].between[50, 80, 'right'], 'grade'] = 'B'
df.loc[df['score'].between[80, 100, 'right'], 'grade'] = 'A'
Thông số
df.loc[df['score'].between[0, 50, 'both'], 'grade'] = 'C'
1. ranh giới bên trái
df.loc[df['score'].between[50, 80, 'right'], 'grade'] = 'B'
df.loc[df['score'].between[80, 100, 'right'], 'grade'] = 'A'df.loc[df['score'].between[0, 50, 'both'], 'grade'] = 'C'
2. ranh giới bên phải
df.loc[df['score'].between[50, 80, 'right'], 'grade'] = 'B'
df.loc[df['score'].between[80, 100, 'right'], 'grade'] = 'A'df.loc[df['score'].between[0, 50, 'both'], 'grade'] = 'C'
3. Bao gồm ranh giới nào. Các giá trị được chấp nhận là {“cả hai”, “không”, “trái”, “phải”}
df.loc[df['score'].between[50, 80, 'right'], 'grade'] = 'B'
df.loc[df['score'].between[80, 100, 'right'], 'grade'] = 'A'
Cho phép phân loại điểm của học sinh thành các lớp dựa trên các khoảng thời gian sau
- A. [80, 100]
- B. [50, 80]
- C. [0, 50]
Trong đó dấu ngoặc vuông ________ 44 và dấu ngoặc tròn ________ 45 chỉ ra rằng giá trị ranh giới lần lượt là bao gồm và loại trừ
Chúng tôi xác định
df.loc[df['score'].between[0, 50, 'both'], 'grade'] = 'C'
df.loc[df['score'].between[50, 80, 'right'], 'grade'] = 'B'
df.loc[df['score'].between[80, 100, 'right'], 'grade'] = 'A'
6 nào nằm giữa các khoảng thời gian quan tâm và gán các giá trị df.loc[df['score'].between[0, 50, 'both'], 'grade'] = 'C'
df.loc[df['score'].between[50, 80, 'right'], 'grade'] = 'B'
df.loc[df['score'].between[80, 100, 'right'], 'grade'] = 'A'
7 tương ứng cho nó. Đối với điểm “A” và “B” chỉ bao gồm ranh giới bên phải do đó chúng tôi chuyển df.loc[df['score'].between[0, 50, 'both'], 'grade'] = 'C'
df.loc[df['score'].between[50, 80, 'right'], 'grade'] = 'B'
df.loc[df['score'].between[80, 100, 'right'], 'grade'] = 'A'
2 cho tham số df.loc[df['score'].between[0, 50, 'both'], 'grade'] = 'C'
df.loc[df['score'].between[50, 80, 'right'], 'grade'] = 'B'
df.loc[df['score'].between[80, 100, 'right'], 'grade'] = 'A'
3. Đối với lớp “C”, cả hai ranh giới đều được bao gồm do đó chúng tôi đã chuyển n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]40 cho tham số
df.loc[df['score'].between[0, 50, 'both'], 'grade'] = 'C'
df.loc[df['score'].between[50, 80, 'right'], 'grade'] = 'B'
df.loc[df['score'].between[80, 100, 'right'], 'grade'] = 'A'
3df.loc[df['score'].between[0, 50, 'both'], 'grade'] = 'C'
df.loc[df['score'].between[50, 80, 'right'], 'grade'] = 'B'
df.loc[df['score'].between[80, 100, 'right'], 'grade'] = 'A'
Hình ảnh của tác giả
Đây là số học sinh trong mỗi thùng
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]4
Hình ảnh của tác giả
Phương pháp này yêu cầu một dòng mã mới cho mỗi thùng do đó nó chỉ phù hợp với các trường hợp có ít thùng
2. cắt tỉaGiá trị bin thành các khoảng rời rạc. Sử dụng cắt khi bạn cần phân đoạn và sắp xếp các giá trị dữ liệu vào các thùng. Hàm này cũng hữu ích để chuyển từ biến liên tục sang biến phân loại[2]
Các sinh viên được đánh dấu dựa trên cùng một khoảng thời gian như ví dụ trên. Đây là những thông số được sử dụng
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]
42. Mảng đầu vào được binned. Phải là 1 chiềun = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]
43. Chuỗi vô hướng. Xác định các cạnh thùng cho phép chiều rộng không đồng nhấtn = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]
44. Chỉ định nhãn cho các thùng được trả lại. Phải có cùng chiều dài với các thùng kết quản = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]
45. [bool] Khoảng đầu tiên có nên bao hàm bên trái hay không
Write the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b111112
Chúng tôi tạo danh sách
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]43 chứa các giá trị biên của các thùng và danh sách
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]44 chứa các nhãn thùng tương ứng
Hình ảnh của tác giả
Đây là số học sinh trong mỗi thùng
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]4
Hình ảnh của tác giả
Kết quả giống với ví dụ đầu tiên
3. qcutChức năng rời rạc dựa trên lượng tử. Biến rời rạc thành các nhóm có kích thước bằng nhau dựa trên thứ hạng hoặc dựa trên lượng tử mẫu[3]
Trong các ví dụ trước, chúng tôi đã xác định khoảng cách điểm số cho từng lớp dẫn đến số lượng học sinh không đồng đều trong mỗi nhóm lớp. Trong ví dụ sau, chúng tôi cố gắng chia học sinh thành 3 nhóm lớp, mỗi nhóm có số học sinh [xấp xỉ] bằng nhau. Chúng tôi có 1000 học sinh nên mỗi thùng nên có khoảng 333 học sinh. Các học sinh được xếp hạng đầu tiên theo điểm số của họ và một phần ba học sinh ở trên cùng, ở giữa và dưới cùng được xếp vào các ô cấp độ “A”, “B” và “C” tương ứng
Đây là các tham số đã được sử dụng trong ví dụ sau
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]
42. Mảng đầu vào được binned. Phải là 1 chiềun = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]
49. Số lượng phân vị. 10 cho deciles, 4 cho tứ phân vị, v.v. Mảng lượng tử xen kẽ, e. g. [0,. 25,. 5,. 75, 1. ] cho phần tưn = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]
44. Chỉ định nhãn cho các thùng được trả lại. Phải có cùng chiều dài với các thùng kết quảWrite the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b11111
21. [bool] Có trả lại [thùng, nhãn] hay không. Có thể hữu ích nếu các thùng được đưa ra dưới dạng vô hướng
import pandas as pd # version 1.3.50
import numpy as npdef create_df[]: df = pd.DataFrame[{'score': np.random.randint[0,101,1000]}] return dfdf = create_df[]df.head[]
Hình ảnh của tác giả
Vượt qua
Write the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b1111121 vì
Write the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b1111123 trả về ranh giới bin
import pandas as pd # version 1.3.53
import numpy as npdef create_df[]: df = pd.DataFrame[{'score': np.random.randint[0,101,1000]}] return dfdf = create_df[]df.head[]
Các thùng có các khoảng sau
- C. [0, 36]
- B. [36, 68]
- A. [68, 100]
Chúng tôi có thể kiểm tra xem có bao nhiêu học sinh trong mỗi ngăn lớp bằng cách sử dụng
Write the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b1111124. Lý tưởng nhất là mỗi thùng nên có khoảng 333 học sinh
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]4
Hình ảnh của tác giả4. số lượng giá trị
Mặc dù pandas
Write the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b1111125 thường được sử dụng để đếm số lượng giá trị duy nhất trong một chuỗi, nhưng nó cũng có thể được sử dụng để nhóm các giá trị vào các ngăn mở một nửa bằng cách sử dụng tham số
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]43[4]
import pandas as pd # version 1.3.58
import numpy as npdef create_df[]: df = pd.DataFrame[{'score': np.random.randint[0,101,1000]}] return dfdf = create_df[]df.head[]
Theo mặc định,
Write the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b1111125 sắp xếp chuỗi trả về theo thứ tự giá trị giảm dần. Đặt
Write the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b1111128 thành
Write the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b1111129 để sắp xếp chuỗi theo thứ tự tăng dần của chỉ mục
Hình ảnh của tác giả
Chỉ số sê-ri đề cập đến phạm vi khoảng thời gian cho mỗi ngăn trong đó dấu ngoặc vuông ________ 44 và dấu ngoặc tròn ________ 45 cho biết giá trị ranh giới lần lượt là bao gồm và loại trừ. Các giá trị của chuỗi được trả về cho biết có bao nhiêu bản ghi trong mỗi ngăn
Không giống như ví dụ về
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]42, số lượng bản ghi trong mỗi ngăn không nhất thiết giống nhau [xấp xỉ].
Write the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b1111125 không chỉ định số lượng bản ghi bằng nhau vào mỗi ngăn điểm, thay vào đó, nó chia phạm vi điểm thành 3 phần bằng nhau dựa trên điểm tối đa và tối thiểu. Điểm số có giá trị tối thiểu là 0 và giá trị tối đa là 100, do đó mỗi phần trong số 3 phần đều xấp xỉ trong phạm vi 33. 33. Điều này cũng giải thích tại sao ranh giới của các thùng là bội số của 33. 33 ngoại trừ ranh giới thấp nhất bên trái
Chúng tôi cũng có thể xác định ranh giới bin bằng cách chuyển vào danh sách các ranh giới
df.loc[df['score'].between[0, 50, 'both'], 'grade'] = 'C'
df.loc[df['score'].between[50, 80, 'right'], 'grade'] = 'B'
df.loc[df['score'].between[80, 100, 'right'], 'grade'] = 'A'
6Hình ảnh của tác giả
Điều này cho chúng ta kết quả giống như ví dụ 1 và 2
Tóm lượcTrong bài viết này, chúng tôi đã kiểm tra cách phân loại các giá trị liên tục bằng cách sử dụng
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]44,
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]45,
n = input["Enter an integer :"] dec_number = int[n] bin_number = bin[dec_number] print[bin_number]42 và
Write the code result here. Result Enter an integer :23 0b10111 Enter an integer :-31 -0b1111125. Bạn có thể tìm thấy sổ tay Colab cho ví dụ trên tại đây