1. Đối tượng Ndarray trong Numpy

Ndarray là đối tượng mảng n chiều được định nghĩa trong numpy lưu trữ tập hợp các phần tử cùng loại. Nói cách khác, chúng ta có thể định nghĩa một ndarray là tập hợp các đối tượng có cùng kiểu dữ liệu (dtype).

Đối tượng ndarray có thể được truy cập tới các phần tử có bên trong bằng cách sử dụng lập chỉ mục dựa trên phần từ đầu tiên có chỉ mục 0, phần tử thứ hai có chỉ mục 1…. phần tử cuối có chỉ mục N – 1. Mỗi phần tử của đối tượng Array có cùng kích thước trong bộ nhớ.

2. Tạo một mảng bằng Numpy

Đối tượng ndarray có thể được tạo bằng cách sử dụng cú pháp mảng của mô-đun numpy. Để tạo được một Ndarray trong Numpy, chúng ta cần nhập numpy vào chương trình Python của mình và sử dụng hàm np.array() và truyền vào mảng 1 chiều, 2chiều, 3 chiều (1-D, 2-D, 3-D)….

2.1 Tạo mảng 1 chiều bằng Numpy

Mảng có các phần tử là mảng 0-D được gọi là mảng 1 chiều hoặc 1-D.Đây là những mảng cơ bản và phổ biến nhất trong Python. Trong toán học, mảng 1 chiều thường được hiểu là 1 vectơ.

Ví dụ dưới đây tạo một mảng 1 chiều (1D array) trong Numpy với các phần tử bên trong là số nguyên.

import numpy as np

# Tao mang 1D array voi Numpy
arrA = np.array([1, 2, 3, 4, 5])

print(arrA)

Kết quả:

[1 2 3 4 5]

2.2 Tạo mảng 2 chiều bằng Numpy

Mảng có chứa các phần tử là mảng 1-D được gọi là mảng 2 chiều hay 2-D. Trong toán học, chúng thường được sử dụng để biểu diễn ma trận hoặc tenxơ bậc 2.

Ví dụ dưới đây tạo một mảng 1 chiều trong numpy bằng cách truyền vào hàm np.array() một mảng hai chiều (2D array) như bên dưới:

import numpy as np

# Tao mang 2D array voi Numpy
arrA = np.array([
    [1, 2, 3, 4, 5],
    [6, 7, 8, 9, 10]
])

print(arrA)

Kết quả:

[[ 1  2  3  4  5]
 [ 6  7  8  9 10]]

2.3 Tạo mảng 3 chiều bằng Numpy

Mảng có chứa các phần tử là mảng 2-D (ma trận) được gọi là mảng 3 chiều hay 3-D. Trong toán học, chúng thường được sử dụng để đại diện cho một tensor bậc 3.

Ví dụ dưới đây, chúng ta sẽ tạo một mảng ba chiều (3D array) trong Numpy sẽ như sau:

import numpy as np

# Tao mang 3D array voi Numpy
arrA = np.array([
    [[1, 2, 3], 
    [4, 5, 6]],
    
    [[1, 2, 3], 
    [4, 5, 6]]
])

print(arrA)

Kết quả:

[[[1 2 3]
  [4 5 6]]

 [[1 2 3]
  [4 5 6]]]

2.4 Tạo mảng N chiều bằng Numpy

Ở các phần trên, chúng ta mới chỉ thực hiện đến việc tạo một mảng có số chiều lớn nhất là 3 chiều hay 3-D. Tuy nhiên, bạn cũng có thể tạo ra một mảng trong Numpy với số chiều được chỉ định trước bằng cách thêm tham số ndmin vào trong phương thức np.array()

import numpy as np

# Tao mang 5-D array 
arrA = np.array([1, 2, 3, 4], ndmin=5)

print(arrA)
print('So chieu cua mang:',arrA.ndim)

Kết quả:

[[[[[1 2 3 4]]]]]
So chieu cua mang: 5

3. Kiểm tra số chiều (ndim) của mảng Numpy

NumPy Arrays cung cấp cho chúng ta thuộc tính np.ndim được sử dụng để trả về một số nguyên cho chúng ta biết một mảng có số chiều là bao nhiêu.

Ví dụ dưới đây, sử dụng thuộc tính np.ndim để kiểm tra số chiều của 4 mảng mà ta thương khai báo và sử dụng đó là: array 0-D, array 1-D, array 2-D, array 3-D. Trong toán học, các mảng này sẽ được hiểu lần lượt là: số vô hướng, vectơ, ma trận, tenxơ bậc 3.

import numpy as np

# array 0-D
a = np.array(42)
# array 1-D
b = np.array([1, 2, 3, 4, 5])
# array 2-D
c = np.array([[1, 2, 3], [4, 5, 6]])
# array 3-D
d = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])

print(a.ndim)
print(b.ndim)
print(c.ndim)
print(d.ndim)

Kết quả:

0
1
2
3

4. Kiểm tra hình dạng (shape) của mảng Numpy

Một mảng trong Numpy có thể có nhiều hình dạng khác nhau. Ví dụ như mảng 1 chiều có hình dạng 1 x N (1 hàng nhân N cột), hay mảng 2 chiều sẽ có hình dạng m x n (m hàng nhân n cột)…
Để kiểm tra một mảng Numpy có hình dạng như thế nào, chúng ta có thể sử dụng thuộc tính có sẵn trong Numpy đó là np.shape để thực hiện kiểm tra.
import numpy as np

# array 0-D
a = np.array(42)
# array 1-D
b = np.array([1, 2, 3, 4, 5])
# array 2-D
c = np.array([[1, 2, 3], [4, 5, 6]])
# array 3-D
d = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])

# Kiem tra hinh dang
print(a.shape)
print(b.shape)
print(c.shape)
print(d.shape)

Kết quả:

()
(1,5)
(2, 3)
(2, 2, 3)

Trong đó:

  • () là không có hình dạng
  • (1,5) là hình dạng 1 x n
  • (2,3) là hình dạng m x n
  • (2, 2, 3) là hình dạng d x m x n

Hình ảnh dưới đây, miêu tả rõ hơn về hình dạng của mảng 1-D, 2-D, 3-D Numpy thông qua các đại lượng toán học như: vectơ, ma trận, tenxơ

5. Kiểm tra kích thước (size) của mảng Numpy

Trong một mảng numpy, kích thước của một mảng chính là số lượng phần tử có trong mảng đó. Numpy cho phép chúng ta kiểm tra được kích thước của một mảng bằng cách sử dụng thuộc tính np.size để kiểm tra.

import numpy as np

# array 0-D
a = np.array(42)
# array 1-D
b = np.array([1, 2, 3, 4, 5])
# array 2-D
c = np.array([[1, 2, 3], [4, 5, 6]])
# array 3-D
d = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])

# Kiem tra kich thuoc
print(a.size)
print(b.size)
print(c.size)
print(d.size)

Kết quả:

1
5
6
12