Hướng dẫn python3 64 bit integer - số nguyên 64 bit của python3

Tổng quan

Giảng dạy: 20 phút Bài tập: 25 phút 20 min
Exercises: 25 min

Nội phân Chính showShow

  • Các loại dữ liệu
  • Các loại dữ liệu số
  • Kiểu dữ liệu văn bản
  • Kiểm tra định dạng dữ liệu của chúng tôi
  • Làm việc với số nguyên và phao
  • Làm việc với dữ liệu khảo sát của chúng tôi
  • Thay đổi loại
  • Thiếu giá trị dữ liệu - NAN
  • Nan Nan ở đâu?
  • Viết dữ liệu cho CSV

Nội phân chính

  • Các loại dữ liệu
  • Các loại dữ liệu số
  • Kiểu dữ liệu văn bản
  • Kiểm tra định dạng dữ liệu của chúng tôi
  • Làm việc với số nguyên và phao
  • Làm việc với dữ liệu khảo sát của chúng tôi
  • Thay đổi loại
  • Thiếu giá trị dữ liệu - NAN
  • Nan Nan ở đâu?
  • Viết dữ liệu cho CSV
  • Nội phân chính
  • Int64 có nghĩa là gì trong Numpy?
  • Int32 có nghĩa là gì trong Python?
  • Int8 có nghĩa là gì trong Python?

Làm thế nào để bạn xác định một loại dữ liệu trong Python?

  • Câu hỏi

  • Những loại dữ liệu có thể được chứa trong một khung dữ liệu?

Tại sao loại dữ liệu lại quan trọng?

  • Mục tiêu

  • Mô tả cách thông tin được lưu trữ trong khung dữ liệu Python.

  • Xác định hai loại dữ liệu chính trong Python: văn bản và số.

  • Kiểm tra cấu trúc của một khung dữ liệu.

  • Sửa đổi định dạng của các giá trị trong DataFrame.

  • Mô tả cách các loại dữ liệu tác động hoạt động.

  • Xác định, thao tác, và số nguyên xen kẽ và nổi trong Python.

  • Phân tích bộ dữ liệu có giá trị thiếu/null (giá trị NAN).

Viết dữ liệu thao tác vào một tệp.

Định dạng của các cột và hàng riêng lẻ sẽ tác động đến phân tích được thực hiện trên một bộ dữ liệu được đọc vào Python. Ví dụ: bạn có thể thực hiện các tính toán toán học trên một chuỗi (dữ liệu được định dạng văn bản). Điều này có vẻ rõ ràng, tuy nhiên đôi khi các giá trị số được đọc thành Python dưới dạng chuỗi. Trong tình huống này, khi bạn cố gắng thực hiện các tính toán trên dữ liệu số được định dạng chuỗi, bạn sẽ gặp lỗi.

Các loại dữ liệu

Trong bài học này, chúng tôi sẽ xem xét các cách để khám phá và hiểu rõ hơn về cấu trúc và định dạng của dữ liệu của chúng tôi.

Các loại dữ liệu số

Cách thông tin được lưu trữ trong một khung dữ liệu hoặc đối tượng Python ảnh hưởng đến những gì chúng ta có thể làm với nó và các đầu ra của các tính toán là tốt. Có hai loại dữ liệu chính mà chúng tôi sẽ khám phá trong bài học này: các loại dữ liệu số và văn bản.floating point (known as a float) number has decimal points even if that decimal point value is 0. For example: 1.13, 2.0, 1234.345. If we have a column that contains both integers and floating point numbers, Pandas will assign the entire column to the float data type so the decimal points are not lost.

Các loại dữ liệu số bao gồm số nguyên và phao. Một số điểm nổi (được gọi là phao) có số thập phân ngay cả khi giá trị điểm thập phân đó là 0. Ví dụ: 1.13, 2.0, 1234.345. Nếu chúng ta có một cột chứa cả số nguyên và số điểm nổi, gấu trúc sẽ gán toàn bộ cột cho kiểu dữ liệu float để các điểm thập phân không bị mất.integer will never have a decimal point. Thus if we wanted to store 1.13 as an integer it would be stored as 1. Similarly, 1234.345 would be stored as 1234. You will often see the data type

pandas.core.frame.DataFrame
5 in Python which stands for 64 bit integer. The 64 refers to the memory allocated to store data in each cell which effectively relates to how many digits it can store in each “cell”. Allocating space ahead of time allows computers to optimize storage and processing efficiency.

Kiểu dữ liệu văn bản

Kiểm tra định dạng dữ liệu của chúng tôistrings that contain numbers can not be used for mathematical operations!

Làm việc với số nguyên và phao

Làm việc với dữ liệu khảo sát của chúng tôiThay đổi loạiThiếu giá trị dữ liệu - NAN
Nan Nan ở đâu?Viết dữ liệu cho CSVNội phân chính
Int64 có nghĩa là gì trong Numpy?Int32 có nghĩa là gì trong Python?Int8 có nghĩa là gì trong Python?
Làm thế nào để bạn xác định một loại dữ liệu trong Python?Câu hỏiNhững loại dữ liệu có thể được chứa trong một khung dữ liệu?
Tại sao loại dữ liệu lại quan trọng?Mục tiêuMô tả cách thông tin được lưu trữ trong khung dữ liệu Python.

Kiểm tra định dạng dữ liệu của chúng tôi

Xác định hai loại dữ liệu chính trong Python: văn bản và số.

# Make sure pandas is loaded
import pandas as pd

# Note that pd.read_csv is used because we imported pandas as pd
surveys_df = pd.read_csv("data/surveys.csv")

Kiểm tra cấu trúc của một khung dữ liệu.

pandas.core.frame.DataFrame

Sửa đổi định dạng của các giá trị trong DataFrame.

Mô tả cách các loại dữ liệu tác động hoạt động.

surveys_df['record_id'].dtype

Xác định, thao tác, và số nguyên xen kẽ và nổi trong Python.

trở lại nào:returns:

record_id            int64
month                int64
day                  int64
year                 int64
plot_id              int64
species_id          object
sex                 object
hindfoot_length    float64
weight             float64
dtype: object

Lưu ý rằng hầu hết các cột trong dữ liệu khảo sát của chúng tôi là loại

pandas.core.frame.DataFrame
8. Điều này có nghĩa là chúng là số nguyên 64 bit. Nhưng cột trọng lượng là giá trị điểm nổi có nghĩa là nó chứa số thập phân. Các cột
surveys_df['record_id'].dtype
1 và
surveys_df['record_id'].dtype
2 là các đối tượng có nghĩa là chúng chứa các chuỗi.

Làm việc với số nguyên và phao

Vì vậy, chúng tôi đã học được rằng các máy tính lưu trữ số theo một trong hai cách: dưới dạng số nguyên hoặc là số điểm nổi (hoặc phao). Số nguyên là những con số chúng ta thường tính. Phao có các phần phân số (vị trí thập phân). Tiếp theo, hãy xem xét cách loại dữ liệu có thể tác động đến các hoạt động toán học trên dữ liệu của chúng tôi. Ngoài ra, phép trừ, phân chia và nhân lên trên phao và số nguyên như chúng tôi mong đợi.

Nếu chúng ta chia một số nguyên cho một số nguyên khác, chúng ta sẽ có một chiếc phao. Kết quả trên Python 3 khác với trong Python 2, trong đó kết quả là một số nguyên (phân chia số nguyên).

Chúng ta cũng có thể chuyển đổi số điểm nổi thành số nguyên hoặc số nguyên thành số điểm nổi. Lưu ý rằng Python theo mặc định làm tròn xuống khi nó chuyển đổi từ điểm nổi sang số nguyên.

# Convert a to an integer
a = 7.83
int(a)
# Convert b to a float
b = 7
float(b)

Làm việc với dữ liệu khảo sát của chúng tôi

Quay trở lại dữ liệu của chúng tôi, chúng tôi có thể sửa đổi định dạng của các giá trị trong dữ liệu của chúng tôi, nếu chúng tôi muốn. Chẳng hạn, chúng ta có thể chuyển đổi trường

surveys_df['record_id'].dtype
3 thành các giá trị điểm nổi.

# Convert the record_id field from an integer to a float
surveys_df['record_id'] = surveys_df['record_id'].astype('float64')
surveys_df['record_id'].dtype

Thay đổi loại

Thử chuyển đổi cột

surveys_df['record_id'].dtype
4 thành phao bằng cách sử dụng

surveys_df.plot_id.astype("float")

Tiếp theo, hãy thử chuyển đổi

surveys_df['record_id'].dtype
5 thành một số nguyên. Điều gì xảy ra ở đây? Pandas đang nói gì với bạn? Chúng tôi sẽ nói về một số giải pháp cho điều này sau.

Thiếu giá trị dữ liệu - NAN

Điều gì đã xảy ra trong hoạt động thử thách cuối cùng? Lưu ý rằng điều này ném một lỗi giá trị:

surveys_df['record_id'].dtype
6. Nếu chúng ta nhìn vào cột
surveys_df['record_id'].dtype
5 trong dữ liệu khảo sát, chúng ta nhận thấy rằng có các giá trị NAN (không phải Anumber). Các giá trị NAN là các giá trị không xác định không thể được biểu diễn về mặt toán học. Pandas, chẳng hạn, sẽ đọc một ô trống trong một tấm CSV hoặc Excel dưới dạng NAN. NAN có một số thuộc tính mong muốn: Nếu chúng ta trung bình cột
surveys_df['record_id'].dtype
5 mà không thay thế NANS của chúng ta, Python sẽ biết bỏ qua các tế bào đó.Not a Number) values. NaN values are undefined values that cannot be represented mathematically. Pandas, for example, will read an empty cell in a CSV or Excel sheet as a NaN. NaNs have some desirable properties: if we were to average the
surveys_df['record_id'].dtype
5 column without replacing our NaNs, Python would know to skip over those cells.

surveys_df['weight'].mean()

Đối phó với các giá trị dữ liệu bị thiếu luôn là một thách thức. Nó đôi khi khó có thể biết tại sao các giá trị bị thiếu - có phải do lỗi nhập dữ liệu? Hoặc dữ liệu mà ai đó không thể thu thập? Giá trị có nên là 0 không? Chúng ta cần biết làm thế nào các giá trị bị thiếu được thể hiện trong tập dữ liệu để đưa ra quyết định tốt. Nếu chúng tôi may mắn, chúng tôi có một số siêu dữ liệu sẽ cho chúng tôi biết thêm về cách xử lý các giá trị null.

Ví dụ, trong một số ngành, như viễn thám, các giá trị dữ liệu bị thiếu thường được định nghĩa là -9999. Có một loạt các giá trị -9999 trong dữ liệu của bạn thực sự có thể thay đổi các tính toán số. Thông thường trong bảng tính, các ô bị bỏ trống khi không có dữ liệu. Theo mặc định, gấu trúc sẽ thay thế các giá trị bị thiếu đó bằng NAN. Tuy nhiên, đó là cách thực hành tốt để có được thói quen cố ý đánh dấu các tế bào không có dữ liệu, không có giá trị dữ liệu! Bằng cách đó, không có câu hỏi nào trong tương lai khi bạn (hoặc người khác) khám phá dữ liệu của bạn.

Nan Nan ở đâu?

Hãy cùng khám phá các giá trị NAN trong dữ liệu của chúng tôi thêm một chút. Sử dụng các công cụ chúng tôi đã học trong Bài 02, chúng tôi có thể tìm ra có bao nhiêu hàng chứa các giá trị NAN cho trọng lượng. Chúng tôi cũng có thể tạo một tập hợp con mới từ dữ liệu của chúng tôi chỉ chứa các hàng có giá trị trọng lượng> 0 (nghĩa là, chọn giá trị trọng lượng có ý nghĩa):

len(surveys_df[pd.isnull(surveys_df.weight)])
# How many rows have weight values?
len(surveys_df[surveys_df.weight > 0])

Chúng tôi có thể thay thế tất cả các giá trị NAN bằng 0 bằng phương pháp

surveys_df['record_id'].dtype
9 (sau khi tạo một bản sao của dữ liệu để chúng tôi không mất công việc):

pandas.core.frame.DataFrame
0

Tuy nhiên, NAN và 0 mang lại kết quả phân tích khác nhau. Giá trị trung bình khi các giá trị NAN được thay thế bằng 0 khác với khi các giá trị NAN được loại bỏ hoặc bị bỏ qua.

Chúng ta có thể điền vào các giá trị NAN với bất kỳ giá trị nào mà chúng ta đã chọn. Mã bên dưới điền vào tất cả các giá trị NAN với giá trị trung bình cho tất cả các giá trị trọng lượng.

pandas.core.frame.DataFrame
1

Chúng tôi cũng có thể chọn tạo một tập hợp con dữ liệu của chúng tôi, chỉ giữ các hàng không chứa các giá trị NAN.

Vấn đề là đưa ra quyết định có ý thức về cách quản lý dữ liệu bị thiếu. Đây là nơi chúng tôi nghĩ về cách dữ liệu của chúng tôi sẽ được sử dụng và cách các giá trị này sẽ tác động đến các kết luận khoa học được thực hiện từ dữ liệu.

Python cung cấp cho chúng tôi tất cả các công cụ mà chúng tôi cần giải thích cho những vấn đề này. Chúng ta chỉ cần thận trọng về cách các quyết định mà chúng ta tạo ra kết quả khoa học.

Đếm

Đếm số lượng các giá trị bị thiếu trên mỗi cột.

Dấu

Phương pháp

record_id            int64
month                int64
day                  int64
year                 int64
plot_id              int64
species_id          object
sex                 object
hindfoot_length    float64
weight             float64
dtype: object
0 cung cấp cho bạn số lượng quan sát không NA trên mỗi cột. Hãy thử tìm kiếm phương pháp
record_id            int64
month                int64
day                  int64
year                 int64
plot_id              int64
species_id          object
sex                 object
hindfoot_length    float64
weight             float64
dtype: object
1.

Viết dữ liệu cho CSV

Chúng tôi đã tìm hiểu về việc sử dụng dữ liệu thao tác để có được đầu ra mong muốn. Nhưng chúng tôi cũng đã thảo luận về việc giữ dữ liệu đã bị thao túng tách biệt với dữ liệu thô của chúng tôi. Một cái gì đó chúng tôi có thể quan tâm đến việc làm là chỉ làm việc với các cột có dữ liệu đầy đủ. Đầu tiên, hãy để tải lại dữ liệu để chúng tôi không trộn lẫn tất cả các thao tác trước đây của chúng tôi.

pandas.core.frame.DataFrame
2

Tiếp theo, hãy để cho tất cả các hàng có chứa các giá trị bị thiếu. Chúng tôi sẽ sử dụng lệnh

record_id            int64
month                int64
day                  int64
year                 int64
plot_id              int64
species_id          object
sex                 object
hindfoot_length    float64
weight             float64
dtype: object
2. Theo mặc định, Dropna sẽ loại bỏ các hàng có chứa dữ liệu bị thiếu cho thậm chí chỉ một cột.

pandas.core.frame.DataFrame
3

Nếu bây giờ bạn nhập

record_id            int64
month                int64
day                  int64
year                 int64
plot_id              int64
species_id          object
sex                 object
hindfoot_length    float64
weight             float64
dtype: object
3, bạn nên quan sát rằng DataFrame kết quả có 30676 hàng và 9 cột, nhỏ hơn nhiều so với bản gốc của hàng 35549.

Bây giờ chúng ta có thể sử dụng lệnh

record_id            int64
month                int64
day                  int64
year                 int64
plot_id              int64
species_id          object
sex                 object
hindfoot_length    float64
weight             float64
dtype: object
4 để xuất DataFrame ở định dạng CSV. Lưu ý rằng mã bên dưới sẽ mặc định lưu dữ liệu vào thư mục làm việc hiện tại. Chúng ta có thể lưu nó vào một thư mục khác bằng cách thêm tên thư mục và dấu gạch chéo trước tên tệp:
record_id            int64
month                int64
day                  int64
year                 int64
plot_id              int64
species_id          object
sex                 object
hindfoot_length    float64
weight             float64
dtype: object
5. Chúng tôi sử dụng ‘index = false, để gấu trúc không bao gồm số chỉ mục cho mỗi dòng.

pandas.core.frame.DataFrame
4

Chúng tôi sẽ sử dụng tệp dữ liệu này sau trong hội thảo. Kiểm tra thư mục làm việc của bạn để đảm bảo CSV đã viết đúng và bạn có thể mở nó! Nếu bạn muốn, hãy cố gắng đưa nó trở lại vào Python để đảm bảo nó nhập đúng.

Tóm tắt lại

Những gì chúng tôi đã học được:

  • Cách khám phá các loại dữ liệu của các cột trong một khung dữ liệu
  • Cách thay đổi kiểu dữ liệu
  • Giá trị nan là gì, làm thế nào chúng có thể được thể hiện và điều này có ý nghĩa gì đối với công việc của bạn
  • Cách thay thế các giá trị NAN, nếu muốn
  • Cách sử dụng
    record_id            int64
    month                int64
    day                  int64
    year                 int64
    plot_id              int64
    species_id          object
    sex                 object
    hindfoot_length    float64
    weight             float64
    dtype: object
    
    4 để ghi dữ liệu được thao tác vào một tệp.

Những điểm chính

  • Pandas sử dụng các tên khác cho các loại dữ liệu so với Python, ví dụ:

    record_id            int64
    month                int64
    day                  int64
    year                 int64
    plot_id              int64
    species_id          object
    sex                 object
    hindfoot_length    float64
    weight             float64
    dtype: object
    
    7 cho dữ liệu văn bản.

  • Một cột trong DataFrame chỉ có thể có một loại dữ liệu.

  • Kiểu dữ liệu trong cột đơn DataFrame có thể được kiểm tra bằng

    record_id            int64
    month                int64
    day                  int64
    year                 int64
    plot_id              int64
    species_id          object
    sex                 object
    hindfoot_length    float64
    weight             float64
    dtype: object
    
    8.

  • Đưa ra quyết định có ý thức về cách quản lý dữ liệu bị thiếu.

  • DataFrame có thể được lưu vào tệp CSV bằng hàm

    record_id            int64
    month                int64
    day                  int64
    year                 int64
    plot_id              int64
    species_id          object
    sex                 object
    hindfoot_length    float64
    weight             float64
    dtype: object
    
    4.

Vì vậy, độ dài byte là 8. Tôi nghĩ rằng 'np.int64 ()' có nghĩa là một số nguyên trong (-9223372036854775808 đến 9223372036854775807) hoặc một số nguyên không dấu vào (0 đến 18446744073707an integer in (-9223372036854775808 to 9223372036854775807) or an unsigned integer in (0 to 18446744073709551615)

Trong Python Uint8 DataType cho biết số nguyên không dấu và nó bao gồm 8 bit với các giá trị phạm vi dương từ 0 đến 255. Thông tin lưu trữ kiểu dữ liệu này về thứ tự byte và chiều rộng bit với ký tự được chỉ định.