Rate this post

Mô-đun numpy của Python cung cấp chức năng tải dữ liệu từ tệp văn bản. Mô-đun numpy cung cấp hàm loadtxt () để trở thành trình đọc nhanh cho các tệp văn bản đơn giản.

Các bài viết liên quan:

Lưu ý: Trong tệp văn bản, mỗi hàng phải có cùng số lượng giá trị.

Giới thiệu về numpy.loadtxt()

Trong Python, numpy.loadtxt() là một hàm trong thư viện NumPy được sử dụng để đọc dữ liệu từ file văn bản và tạo ra một mảng đa chiều. Hàm này hỗ trợ việc đọc các dữ liệu được lưu trữ trong các file có định dạng như CSV (Comma-Separated Values), TSV (Tab-Separated Values) và các file văn bản khác.

Hàm numpy.loadtxt() cung cấp một cách thuận tiện để đọc dữ liệu từ file và chuyển đổi chúng thành một mảng NumPy. Nó cho phép bạn chỉ định các tham số như delimiter (ký tự phân tách), dtype (kiểu dữ liệu), skiprows (số dòng bỏ qua), usecols (các cột sử dụng), và nhiều tùy chọn khác để tùy chỉnh quá trình đọc dữ liệu.

Xem thêm đọc và ghi file trong c++

Dưới đây là một ví dụ về việc sử dụng numpy.loadtxt() để đọc dữ liệu từ file CSV:

import numpy as np

data = np.loadtxt('data.csv', delimiter=',', skiprows=1, usecols=(0, 1, 2))

print(data)

Trong ví dụ này, chúng ta đọc dữ liệu từ file ‘data.csv’ sử dụng dấu phẩy làm ký tự phân tách. Chúng ta bỏ qua dòng đầu tiên của file (skiprows=1) và chỉ sử dụng các cột 0, 1 và 2 (usecols=(0, 1, 2)). Kết quả là một mảng NumPy chứa dữ liệu từ file CSV.

numpy.loadtxt() là một công cụ mạnh mẽ để xử lý dữ liệu từ các file văn bản trong Python, đặc biệt là khi làm việc với dữ liệu số học và khoa học. Nó giúp bạn nhanh chóng và dễ dàng đọc dữ liệu từ file và chuyển đổi chúng thành các cấu trúc dữ liệu NumPy để tiến hành các phép tính và phân tích tiếp theo.

Xem thêm File là gì? File trong hệ điều hành

Cú pháp và tham số numpy.loadtxt()

numpy.loadtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)  

Tham số numpy.loadtxt()

Đây là tham số sau trong hàm numpy.loadtxt ():

  1. fname: file, str hoặc pathlib.Path. Tham số này xác định tệp, tên tệp hoặc trình tạo để đọc. Đầu tiên, chúng tôi sẽ giải nén tệp, nếu phần mở rộng tên tệp là .gz và .bz2. Sau đó, trình tạo sẽ trả về chuỗi byte cho Python 3k.
  1. dtype: kiểu dữ liệu (tùy chọn). Tham số này xác định kiểu dữ liệu cho mảng kết quả và theo mặc định, kiểu dữ liệu sẽ là float. Mảng kết quả sẽ là 1 chiều khi nó là kiểu dữ liệu có cấu trúc. Mỗi hàng được hiểu là một phần tử mảng và số cột được sử dụng phải khớp với số trường trong kiểu dữ liệu.
  2. comments: str hoặc chuỗi (tùy chọn). Tham số này xác định các ký tự hoặc danh sách các ký tự được sử dụng để chỉ ra phần bắt đầu của nhận xét. Theo mặc định, nó sẽ là ‘#’.
  3. delimiter: str (tùy chọn). Tham số này xác định chuỗi được sử dụng để phân tách các giá trị. Theo mặc định, nó sẽ là bất kỳ khoảng trắng nào.
  4. converters: dict (tùy chọn). Tham số này xác định số cột ánh xạ từ điển thành một hàm sẽ chuyển đổi cột được ánh xạ thành float. Khi cột () là một chuỗi ngày thì các bộ chuyển đổi = {0: datestr2num}. Tham số này cũng được sử dụng để cung cấp giá trị mặc định cho dữ liệu bị thiếu dưới dạng bộ chuyển đổi = {3: lambda s: float (s.strip () hoặc 0)}.
  5. skiprows: int (tùy chọn). Tham số này được sử dụng để bỏ qua ‘bỏ qua’ đầu tiên và theo mặc định, nó sẽ là 0.
  6. usecols: int hoặc chuỗi (tùy chọn). Tham số này xác định các cột để đọc, với 0 là cột đầu tiên. Ví dụ: usecols = (0, 3, 5) sẽ trích xuất cột 1, 4 và 5. Theo mặc định, giá trị của nó là Không, điều này dẫn đến tất cả các cột được đọc. Trong phiên bản mới, chúng ta có thể sử dụng một số nguyên thay vì một bộ giá trị nếu chúng ta muốn đọc một cột duy nhất.
  7. unpack: bool (tùy chọn). Nếu tham số này được đặt thành true, thì mảng trả về sẽ được hoán vị, do đó các đối số có thể được giải nén bằng cách sử dụng x, y, z = loadtxt (…). Các mảng được trả về cho mỗi trường khi sử dụng nó với kiểu dữ liệu có cấu trúc. Theo mặc định, nó sẽ được đặt thành Sai.
  8. ndim: int (tùy chọn). Mảng được trả về sẽ có kích thước ‘ndmin’. Nếu không, nó sẽ bóp trục đơn chiều. Giá trị pháp lý: 0 (mặc định), 1 hoặc 2.

Return: out (ndarray)

Nó đọc dữ liệu từ tệp văn bản dưới dạng một ndarray.

Xem thêm File là gì? File trong hệ điều hành

Ví dụ về numpy.loadtxt()

Ví dụ 1:

import numpy as np  
from io import StringIO  
c = StringIO(u"0 1\n2 3")  
c  
np.loadtxt(c)

Trong đoạn code trên

  • Chúng tôi cũng đã nhập StringIO từ io.
  • Chúng ta đã khai báo biến ‘c’ và gán giá trị trả về của hàm StringIO ().
  • Chúng tôi đã chuyển dữ liệu unicode trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị trả về của np.loadtxt () mà chúng tôi đã chuyển tệp hoặc tên tệp.
  • Trong đầu ra, nó hiển thị nội dung của tệp ở dạng ndarray.

Ví dụ 2:

import numpy as np  
from io import StringIO  
d = StringIO(u"M 21 72\nF 35 58")  
np.loadtxt(d, dtype={'names': ('gender', 'age', 'weight'),'formats': ('S1', 'i4', 'f4')})  

Đầu ra:

Ví dụ 3:

import numpy as np  
from io import StringIO  
c = StringIO(u"1,3,2\n3,5,4")  
x, y = np.loadtxt(c, delimiter=',', usecols=(0, 2), unpack=True)  
x  
y  

Đầu ra:

Trong đoạn code trên

  • Chúng tôi cũng đã nhập StringIO từ io.
  • Chúng ta đã khai báo biến ‘c’ và gán giá trị trả về của hàm StringIO ().
  • Chúng tôi đã chuyển dữ liệu unicode trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị trả về của np.loadtxt trong đó chúng tôi đã chuyển tệp hoặc tên tệp, đặt dấu phân cách, usecols và giải nén thành True.
  • Trong đầu ra, nó hiển thị nội dung của tệp đã được hiển thị dưới dạng ndarray.

Xem thêm Xử lý File Python

Cách sử dụng numpy.loadtxt()

Để sử dụng hàm numpy.loadtxt() trong Python, bạn cần import thư viện NumPy và sau đó gọi hàm này với các tham số tương ứng. Dưới đây là một ví dụ cơ bản về cách sử dụng numpy.loadtxt():

import numpy as np

# Đọc dữ liệu từ file văn bản
data = np.loadtxt('data.txt')

# In ra dữ liệu
print(data)

Trong ví dụ này, chúng ta đã import thư viện NumPy và sử dụng hàm np.loadtxt() để đọc dữ liệu từ file ‘data.txt’. Hàm này sẽ trả về một mảng NumPy chứa dữ liệu từ file.

Ngoài ra, numpy.loadtxt() cung cấp một số tham số tùy chọn để tùy chỉnh quá trình đọc dữ liệu. Dưới đây là một ví dụ với một số tham số phổ biến:

import numpy as np

# Đọc dữ liệu từ file CSV với dấu phẩy là ký tự phân tách
data = np.loadtxt('data.csv', delimiter=',')

# Bỏ qua 2 dòng đầu tiên của file
data = np.loadtxt('data.txt', skiprows=2)

# Chỉ sử dụng các cột 0 và 1 của file
data = np.loadtxt('data.txt', usecols=(0, 1))

# Đặt kiểu dữ liệu cho các cột
data = np.loadtxt('data.txt', dtype=int)

Trong các ví dụ trên, chúng ta đã sử dụng các tham số delimiter để chỉ định ký tự phân tách (ví dụ: dấu phẩy), skiprows để bỏ qua số dòng đầu tiên, usecols để chỉ định các cột sử dụng (dưới dạng tuple của các chỉ số cột), và dtype để đặt kiểu dữ liệu cho các cột.

Bằng cách sử dụng các tham số này, bạn có thể tùy chỉnh quá trình đọc dữ liệu từ file để phù hợp với định dạng và cấu trúc dữ liệu của bạn.

Xem thêm Cách cài đặt NumPy trên Python

Lưu ý khi sử dụng numpy.loadtxt()

Khi sử dụng hàm numpy.loadtxt() trong Python, có một số lưu ý quan trọng mà bạn nên xem xét:

  1. Đảm bảo định dạng dữ liệu chính xác: numpy.loadtxt() mặc định giả định rằng dữ liệu trong file là số và các giá trị được phân tách bằng khoảng trắng. Nếu dữ liệu của bạn có định dạng khác, ví dụ như dữ liệu chuỗi, bạn cần cung cấp các tham số phù hợp như dtypedelimiter để xác định đúng định dạng và ký tự phân tách.
  2. Xử lý các giá trị thiếu và lỗi: Khi đọc dữ liệu từ file, có thể xảy ra các giá trị thiếu hoặc lỗi. numpy.loadtxt() sẽ gặp lỗi nếu có giá trị không hợp lệ trong file. Bạn có thể xử lý các giá trị thiếu hoặc lỗi bằng cách sử dụng các tham số như missing_valuesfilling_values.
  3. Quản lý kích thước và kiểu dữ liệu: numpy.loadtxt() sẽ tạo ra một mảng NumPy từ dữ liệu trong file. Hãy đảm bảo rằng kích thước và kiểu dữ liệu của mảng được tạo phù hợp với yêu cầu của bạn. Nếu cần, bạn có thể sử dụng các phương thức và thuộc tính của mảng NumPy để điều chỉnh dữ liệu sau khi đọc.
  4. Hiệu suất đọc dữ liệu lớn: Nếu bạn đang xử lý các file dữ liệu lớn, việc sử dụng numpy.loadtxt() có thể gặp vấn đề hiệu suất. Trong trường hợp này, nên xem xét sử dụng các phương pháp đọc dữ liệu phân tán hoặc xử lý dữ liệu mảng chun bằng cách đọc từng phần dữ liệu một.
  5. Kiểm tra và xử lý lỗi: numpy.loadtxt() có thể gặp lỗi khi đọc dữ liệu từ file. Hãy kiểm tra và xử lý các lỗi có thể xảy ra, chẳng hạn như lỗi mở file, lỗi định dạng dữ liệu không chính xác và các lỗi khác, để đảm bảo tính ổn định và sự chính xác của quá trình đọc dữ liệu.
  6. Xem xét sử dụng các phương pháp đọc dữ liệu khác: Nếu numpy.loadtxt() không phù hợp với nhu cầu đặc biệt của bạn, hãy xem xét sử dụng các phương pháp đọc dữ liệu khác trong NumPy như numpy.genfromtxt() hoặc các thư viện khác như pandas để đáp ứng đầy đủ các yêu cầu của bạn.

Những lưu ý trên giúp bạn sử dụng numpy.loadtxt() một cách hiệu quả và đảm bảo tính chính xác của quá trình đọc dữ liệu từ file.

Xem thêm NumPy Datatypes trong thư viện NumPy

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now