Blog

Thư Viện NumPy Trong Python

Numpy (Numeric Python): là một thư viện toán học phổ biến và mạnh mẽ của Python. Cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dữ liệu ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều lần khi chỉ sử dụng “core Python” đơn thuần.

1. Cài đặt thư viện Numpy

Mở Command Prompt và gõ lệnh: pip install numpy

2. Các thao tác với Numpy

2.1. Khai báo thư viện

import numpy as np

2.2. Khởi tạo mảng

a) Khởi tạo mảng một chiều

#Khởi tạo mảng một chiều với kiểu dữ liệu các phần tử là Integer
arr = np.array([1,3,4,5,6], dtype = int)

#Khởi tạo mảng một chiều với kiểu dữ liệu mặc định
arr = np.array([1,3,4,5,6])

print(arr)

OUTPUT:

[1 3 4 5 6]

b) Khởi tạo mảng hai chiều

arr1 = np.array([(4,5,6), (1,2,3)], dtype = int)

print(arr1)

OUTPUT:

[[4 5 6]

 [1 2 3]]

c) Khởi tạo mảng ba chiều

arr2 = np.array(([(2,4,0,6), (4,7,5,6)],
                 [(0,3,2,1), (9,4,5,6)],
                 [(5,8,6,4), (1,4,6,8)]), dtype = int)

print(arr2)

OUTPUT:

[[[2 4 0 6]

  [4 7 5 6]]

 [[0 3 2 1]

  [9 4 5 6]]

 [[5 8 6 4]

  [1 4 6 8]]]

d) Khởi tạo với các hàm có sẵn

  • np.zeros((3,4), dtype = int): Tạo mảng hai chiều các phần tử 0 với kích thước 3×4.
  • np.ones((2,3,4), dtype = int): Tạo mảng 3 chiều các phần tử 1 với kích thước 2x3x4.
  • np.arange(1,7,2): Tạo mảng với các phần tử từ 1 – 6 với bước nhảy là 2.
  • np.full((2,3),5): Tạo mảng 2 chiều các phần tử 5 với kích thước 2×3.
  • np.eye(4, dtype=int): Tạo ma trận đơn vị với kích thước là 4×4.
  • np.random.random((2,3)): Tạo ma trận các phần tử ngẫu nhiên với kích thước 2×3.

2.3. Thao tác với mảng

  • dtype: Kiểu dữ liệu của phần tử trong mảng.
  • shape: Kích thước của mảng.
  • size: Số phần tử trong mảng.
  • ndim: Số chiều của mảng.
print("Kiểu dữ liệu của phần tử trong mảng:", arr2.dtype)
print("Kích thước của mảng:", arr2.shape)
print("Số phần tử trong mảng:", arr2.size)
print("Số chiều của mảng:", arr2.ndim)

Output:

Kiểu dữ liệu của phần tử trong mảng: int32

Kích thước của mảng: (3, 2, 4)

Số phần tử trong mảng: 24

Số chiều của mảng: 3

Truy cập phần tử trong mảng

Các phần tử trong mảng được đánh số từ 0 trở đi

  • arr[i]: Truy cập tới phần tử thứ i của mảng 1 chiều.
  • arr1[i,j]: Truy cập tới phần tử hàng i, cột j của mảng 2 chiều.
  • arr2[n,i,j]: Truy cập tới phần tử chiều n, hàng i, cột j của mảng 3 chiều.
  • arr[a:b]: Truy cập tới các phần tử từ a đến b-1 trong mảng 1 chiều.
  • arr1[:,:i]: Truy cập tới phần tử từ cột 0 đến cột i-1, của tất cả các hàng trong mảng 2 chiều.
print("arr[2]=", arr[2])
print("arr1[1:2]=", arr1[1,2])
print("arr2[1,2,3]=", arr2[1,1,3])
print("arr[0:3]=", arr[0:3])
print("arr1[:,:1]=", arr1[:,:2])​

Output

arr[2]= 4

arr1[1:2]= 3

arr2[1,2,3]= 6

arr[0:3]= [1 3 4]

arr1[:,:1]= [[4 5]

            [1 2]]

Đọc mảng từ file .txt

diem_2a = np.loadtxt('Diem_2A.txt', dtype = int, delimiter=',') #ở đây tất cả phần tử là số nguyên nên mình để kiểu int cho dễ nhìn, các phần tử phân tách nhau bởi dấu ","

print("File dữ liệu điểm lớp 2A:\n", diem_2a)

Output

Các hàm thống kê

  • arr.max() hoặc np.max(arr): Lấy giá trị lớn nhất của mảng arr.
  • arr.min() hoặc np.min(arr): Lấy giá trị nhỏ nhất của mảng arr.
  • arr.sum() hoặc np.sum(arr): Tổng tất cả các phần tử trong mảng arr.
  • arr.mean() hoặc np.mean(arr): Trung bình cộng của tất cả các phần tử trong mảng arr.
  • np.median(arr): Trả về giá trị trung vị của mảng arr.
print("Giá trị lớn nhất của mảng arr là:", np.max(arr))
print("Giá trị nhỏ nhất của mảng arr là:", np.min(arr))
print("Tổng tất cả các phần tử của mảng arr là:", np.sum(arr))
print("Trung bình cộng tất cả các phần tử của mảng arr là:", np.mean(arr))
print("Giá trị trung vị của mảng arr là:", np.median(arr))

Output:

Giá trị lớn nhất của mảng arr là: 6

Giá trị nhỏ nhất của mảng arr là: 1

Tổng tất cả các phần tử của mảng arr là: 19

Trung bình cộng tất cả các phần tử của mảng arr là: 3.8

Giá trị trung vị của mảng arr là: 4.0

NumPy dtype

Basic TypeAvailable Numpy typesComments
BooleanboolElements are 1 byte in size.
Integerint8, int16, int32, int64, int128, intint defaults to the size of int in C for the platform.
Unsigned Integeruint8, uint16, uint32, uint64, uint128, uintuint defaults to the size of unsigned int in c for the platform.
Floatfloat32, float64, float,longfloatFloat is always a double precision floating point value (64 bits). longfloat represents large precision floats. Its size is platform dependent.
Complexcomplex64, complex128, complexThe real and complex elements of a complex64 are each represented by a single precision (32 bit) value for a total size of 64 bits.
Stringsstr, unicodeUnicode is always UTF32 (UCS4)
ObjectobjectRepresent items in array as Python objects.
RecordsvoidUsed for arbitrary data structures in record arrays.

Toán tử trong NumPy Array

a = np.array([2,1,3,4,5])
Toán tửVí dụKết quả
 (+) Một số với mảng3 + arrarr +3[4, 6, 7, 8, 9]
(+) Mảng với mảngarr + aa + arr[3, 4, 7, 9, 11]
(-) Một số với mảngarr – 33 – arr[-2, 0, 1, 2, 3][2, 0, -1, -2, -3]
(-) Mảng với mảngarr – aa – arr[-1, 2, 1, 1, 1][1, -2, -1, -1, -1]
(*) Một số với mảngarr * 33 * arr[3, 9, 12, 15, 18]
(*) Mảng với mảngarr * aa * arr[2, 3, 12, 20, 30]
(/) Một số với mảngarr / 33 / arr[0.33333333, 1., 1.33333333, 1.66666667, 2.][3.,   1.,   0.75, 0.6,  0.5]
(/) Mảng với mảngarr / aa / arr[0.5, 3., 1.33333333, 1.25, 1.2][2., 0.33333333, 0.75, 0.8, 0.83333333]
Hạng của ma trậnnp.rank(arr)np.rank(arr1)12

3. Lời kết

Như vậy là mình đã giới thiệu cơ bản cho bạn về thư viện NumPy trong Python. Ở bài sau mình sẽ giới thiệu cho các bạn về cách xử lý dữ liệu với thư viện Pandas.

Nguồn Internet – Thangtn

LỘ TRÌNH TRỞ THÀNH DATA ANALYST CHUYÊN GIA PHÂN TÍCH DỮ LIỆU

LỘ TRÌNH THĂNG TIẾN CỦA MỘT CHUYÊN GIA PHÂN TÍCH DỮ LIỆU (DATA ANALYST)

    LIÊN HỆ VỚI CHÚNG TÔI ĐỂ NHẬN ĐƯỢC TƯ VẤN MIỄN PHÍ
    Xin vui lòng điền vào form dưới đây. Chúng tôi sẽ liên hệ lại ngay cho bạn khi nhận được thông tin:






    Leave a Reply

    Your email address will not be published. Required fields are marked *