Python đọc các cột tệp thành mảng

Hướng dẫn này sẽ chỉ cho bạn cách sử dụng Numpy loadtxt để tải dữ liệu số được lưu trữ trong tệp văn bản vào một mảng Numpy

Hướng dẫn giải thích chức năng của hàm, giải thích cú pháp và hiển thị các ví dụ từng bước về cách sử dụng np. tảitxt

Nếu bạn cần một cái gì đó cụ thể, bạn có thể nhấp vào bất kỳ liên kết nào sau đây

Mục lục

Giới thiệu nhanh về Numpy Loadtxt

Numpy loadtxt là một chức năng cho gói Numpy

Như bạn có thể biết, Numpy là một gói dành cho ngôn ngữ lập trình Python cho phép lập trình viên làm việc với dữ liệu Số

Gói này có nhiều công cụ để tạo, tổng hợp, định hình lại và thao tác dữ liệu số. Đây là một trong những bộ công cụ chính để thực hiện khoa học dữ liệu và học máy bằng Python

Và mặc dù nó chủ yếu được sử dụng để sắp xếp và thao tác dữ liệu số, nhưng trước khi thực hiện việc sắp xếp dữ liệu đó, chúng tôi thường cần lấy dữ liệu số của mình từ một số nguồn

Đó là nơi Numpy loadtxt xuất hiện

Tải dữ liệu được lưu trữ trong tệp văn bản bằng Numpy Loadtxt

Numpy loadtxt cho phép bạn tải dữ liệu số được lưu trữ trong tệp văn bản

Vì vậy, ví dụ: nếu bạn có dữ liệu hàng và cột được lưu trữ trong tệp văn bản, trong đó các số được phân tách bằng dấu phẩy (được gọi là tệp

myarray_1, myarray_2 = np.loadtxt(...)
9), bạn có thể sử dụng Numpy loadtxt để tải dữ liệu vào môi trường Python của mình

An image that shows how Numpy loadtxt loads stored text date into a Numpy array.

Nhưng đây là một công cụ khá linh hoạt cung cấp cho bạn nhiều quyền kiểm soát chi tiết đối với cách bạn nhập dữ liệu văn bản của mình

Và cách chính xác bạn sử dụng nó phụ thuộc vào cú pháp

Trong trường hợp đó, chúng ta hãy xem cú pháp của hàm

Cú pháp của Numpy Loadtxt

Trong phần hướng dẫn này, chúng ta sẽ xem xét cú pháp của Numpy loadtxt

Chúng ta sẽ xem xét cú pháp cấp cao và chúng ta cũng sẽ xem xét một số tham số tùy chọn thay đổi cách thức hoạt động của hàm

Một lưu ý nhanh về cú pháp

Một lời nhắc nhanh về cú pháp

Khi chúng tôi sử dụng Numpy (hoặc bất kỳ gói Python nào khác), trước tiên chúng tôi cần nhập gói đó

Và cách chúng tôi nhập gói sẽ ảnh hưởng đến cú pháp chính xác mà chúng tôi sử dụng

Ví dụ: khi chúng tôi nhập Numpy, chúng tôi hầu như luôn làm điều đó với mã này

import numpy as np

Đây là quy ước tiêu chuẩn giữa những người dùng Python

Khi chúng tôi nhập Numpy như thế này, nó cho phép chúng tôi gọi các hàm Numpy với tiền tố

import numpy as np
0

Tôi đang nhắc bạn về điều này, bởi vì (như tôi đã lưu ý) điều này thay đổi cú pháp một chút

Về sau, tôi sẽ cho rằng bạn đã nhập Numpy như thế này, với bí danh

import numpy as np
0

np. cú pháp loadtxt

Hãy bắt đầu với cú pháp cấp cao

Trong trường hợp đơn giản nhất, chúng ta có thể gọi Numpy loadtxt bằng mã

import numpy as np
2

An image that explains the syntax of np.loadtxt.

Trong trường hợp đơn giản này, đầu vào đầu tiên (và duy nhất bắt buộc) cho hàm là tên của tệp văn bản mà bạn muốn tải dữ liệu của mình từ đó

Tuy nhiên, np. loadtxt có một số tham số tùy chọn cho phép bạn tinh chỉnh cách thức hoạt động của chức năng

Các tham số và đầu vào của Numpy Loadtxt

Sau đây, chúng ta hãy xem các thông số đầu vào và tùy chọn của Numpy loadtxt

  • import numpy as np
    
    3
  • import numpy as np
    
    4
  • import numpy as np
    
    5
  • import numpy as np
    
    6
  • import numpy as np
    
    7
  • import numpy as np
    
    8
  • import numpy as np
    
    9
  • my_array = np.array([[1,2,3],[4,5,6]])
    
    0
  • my_array = np.array([[1,2,3],[4,5,6]])
    
    1
  • my_array = np.array([[1,2,3],[4,5,6]])
    
    2
  • my_array = np.array([[1,2,3],[4,5,6]])
    
    3
  • my_array = np.array([[1,2,3],[4,5,6]])
    
    4
  • my_array = np.array([[1,2,3],[4,5,6]])
    
    5

Hãy xem xét từng cái một

import numpy as np
3 (bắt buộc)

Đối số

import numpy as np
3 là đầu vào đầu tiên cho Numpy loadtxt

Như đã đề cập ở trên, đây là tên của tệp văn bản đầu vào

Điều quan trọng là chỉ ra rằng đối số này là vị trí. Numpy tự động giả định rằng đầu vào đầu tiên của hàm là tên của tệp văn bản đầu vào

import numpy as np
4

Tham số

import numpy as np
4 chỉ định kiểu dữ liệu của mảng Numpy đầu ra

Theo mặc định, điều này được đặt thành

print(my_array)
0

import numpy as np
5

Tham số

import numpy as np
5 cho phép bạn chỉ ra một ký tự hoặc chuỗi ký tự chỉ định nhận xét trong tệp đầu vào

Theo mặc định, điều này được đặt thành

print(my_array)
3

import numpy as np
6

import numpy as np
6 chỉ định ký tự phân cách phân tách các cột trong tệp văn bản đầu vào

Theo mặc định, điều này được đặt thành

print(my_array)
6. Với mặc định này, np. loadtxt giả định rằng khoảng trắng phân tách các cột

Nếu bạn có tệp được phân tách bằng dấu phẩy, bạn sẽ sử dụng

print(my_array)
7

(Tôi sẽ chỉ cho bạn một ví dụ về điều này. )

import numpy as np
7

Tham số

import numpy as np
7 cho phép bạn chỉ định một hàm sẽ “chuyển đổi” các chuỗi bằng cách thao tác trên chúng theo một cách nào đó

Ngoài ra, thay vì cung cấp một chức năng duy nhất để hoạt động trên tất cả các cột, bạn có thể chỉ định một chức năng chuyển đổi cụ thể cho bất kỳ cột nào của đầu vào

import numpy as np
8

Tham số

import numpy as np
8 chỉ định số lượng hàng trong tệp đầu vào để “bỏ qua” khi nó phân tích cú pháp dữ liệu văn bản

Theo mặc định, điều này được đặt thành

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

import numpy as np
9

Tham số

import numpy as np
9 chỉ định các cột sẽ truy xuất từ ​​tệp đầu vào

Theo mặc định, giá trị này được đặt thành

[[1 2 3]
 [4 5 6]]
5, đọc tất cả các cột

Nếu bạn muốn chỉ định các cột cụ thể, bạn có thể cung cấp chỉ mục số bên trong danh sách hoặc bộ. Ví dụ: để trích xuất cột 1 và 3, bạn sẽ sử dụng

[[1 2 3]
 [4 5 6]]
6. (Nhớ. Lập chỉ mục Python bắt đầu từ 0)

my_array = np.array([[1,2,3],[4,5,6]])
0

Tham số

my_array = np.array([[1,2,3],[4,5,6]])
0 cho phép bạn “giải nén” tệp văn bản thành nhiều mảng Numpy (trái ngược với một mảng)

Theo mặc định, điều này được đặt thành

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

Nếu bạn đặt giá trị này thành

np.savetxt('my_numpy_data.txt', my_array)
0, bạn sẽ có thể giải nén đầu ra thành nhiều mảng. Ví dụ

myarray_1, myarray_2 = np.loadtxt(...)
np.savetxt('my_numpy_data.txt', my_array)
1

Tham số

np.savetxt('my_numpy_data.txt', my_array)
1 chỉ định số lượng kích thước tối thiểu của mảng đầu ra

Theo mặc định, điều này được đặt thành

np.savetxt('my_numpy_data.txt', my_array)
3

Ngoài ra, các đối số hợp lệ khác là

np.savetxt('my_numpy_data.txt', my_array)
4 hoặc
np.savetxt('my_numpy_data.txt', my_array)
5

my_array = np.array([[1,2,3],[4,5,6]])
2

Tham số

my_array = np.array([[1,2,3],[4,5,6]])
2 cho phép bạn chỉ định mã hóa của tệp văn bản

Theo mặc định, điều này được đặt thành

np.savetxt('my_numpy_data.txt', my_array)
8

Nếu bạn ghi đè điều này, thì các chuỗi sẽ được coi là unicode và các chuỗi sẽ được xử lý bởi bất kỳ trình chuyển đổi được chỉ định nào

my_array = np.array([[1,2,3],[4,5,6]])
3

Tham số

my_array = np.array([[1,2,3],[4,5,6]])
3 chỉ định số hàng tối đa để đọc từ tệp văn bản (sau bất kỳ hàng nào bị bỏ qua bởi
import numpy as np
8)

Theo mặc định, giá trị này được đặt thành

np.loadtxt('my_numpy_data.txt')
2, đọc tất cả các hàng

my_array = np.array([[1,2,3],[4,5,6]])
4

Tham số

my_array = np.array([[1,2,3],[4,5,6]])
4 cho phép bạn chỉ định một ký tự chỉ định mục được trích dẫn

Theo mặc định, điều này được đặt thành

np.loadtxt('my_numpy_data.txt')
5, vô hiệu hóa trích dẫn cho quá trình tải

my_array = np.array([[1,2,3],[4,5,6]])
5

Tham số

my_array = np.array([[1,2,3],[4,5,6]])
5 cho phép bạn chỉ định một loại đối tượng bên cạnh một mảng Numpy, sao cho đầu ra là một đối tượng giống như mảng, thay vì một mảng Numpy thích hợp

Ví dụ về cách sử dụng Numpy Loadtxt

Bây giờ chúng ta đã xem xét cú pháp và tham số của Numpy loadtxt, hãy xem một số ví dụ

ví dụ

Mã thiết lập (chạy mã này trước)

Trước khi chạy các ví dụ, bạn sẽ cần chạy một số mã thiết lập

Cụ thể, bạn cần import Numpy và tạo một mảng Numpy để chúng ta có thể làm việc với

Nhập Numpy

Trước tiên, bạn có thể nhập Numpy bằng mã này

import numpy as np

Hãy nhớ những gì tôi đã viết trước đó trong hướng dẫn này. nhập Numpy như thế này cho phép chúng tôi gọi các hàm Numpy có tiền tố

import numpy as np
0

Tạo mảng Numpy

Thứ hai, chúng ta sẽ tạo một mảng Numpy mà chúng ta có thể sử dụng trong các ví dụ của mình

Ở đây, chúng ta sẽ tạo một mảng 2D với các số từ 1 đến 6, sử dụng hàm mảng Numpy

my_array = np.array([[1,2,3],[4,5,6]])

Và hãy in nó ra để xem

print(my_array)

NGOÀI

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

Như bạn có thể thấy, đây là một mảng 2 chiều đơn giản với sáu giá trị

Trong tất cả các ví dụ, trước tiên chúng ta sẽ sử dụng Numpy savetxt để lưu mảng này vào một tệp văn bản. Sau đó, chúng tôi sẽ tải lại vào Python bằng Numpy loadtxt

VÍ DỤ 1. Tải một mảng Numpy từ một tệp văn bản

Đầu tiên, chúng ta sẽ bắt đầu với một ví dụ đơn giản

Chúng tôi sẽ tải một mảng Numpy từ một tệp văn bản đơn giản

Như trong tất cả các ví dụ của chúng tôi, với mục đích minh họa, điều này sẽ có hai bước

  • lưu một mảng Numpy vào một tệp văn bản
  • tải mảng trở lại môi trường của chúng tôi, với Numpy loadtxt

Lưu mảng Numpy vào tệp văn bản

Đầu tiên, chúng ta sẽ lưu mảng Numpy của mình vào một tệp văn bản

np.savetxt('my_numpy_data.txt', my_array)

Nếu bạn muốn hiểu cách thức hoạt động của nó, tôi khuyên bạn nên đọc hướng dẫn của chúng tôi về Numpy savetxt

(Ghi chú. bạn sẽ có thể tìm thấy tệp này trên máy tính của mình và mở tệp đó bằng trình soạn thảo văn bản. )

Tải mảng Numpy từ Tệp văn bản

Bây giờ, chúng tôi sẽ tải tệp trở lại môi trường Python của chúng tôi bằng Numpy loadtxt

np.loadtxt('my_numpy_data.txt')

NGOÀI

array([[1., 2., 3.],
       [4., 5., 6.]])

Như bạn có thể thấy, Numpy loadtxt đã tải dữ liệu trở lại môi trường của chúng ta dưới dạng một mảng Numpy

Cũng lưu ý rằng tất cả các số đều được định dạng là số float, đây là giá trị mặc định

Chúng tôi sẽ thay đổi định dạng số trong một trong các ví dụ trong tương lai

VÍ DỤ 2. Tải một mảng từ tệp văn bản bằng dấu phân cách cụ thể

Tiếp theo, chúng tôi sẽ tải một tệp có dấu phân cách cụ thể giữa các cột

Theo mặc định, Numpy loadtxt giả định rằng các cột được phân tách bằng khoảng trắng

Nhưng trong ví dụ này, chúng tôi sẽ tải một tệp trong đó các cột được phân tách bằng dấu phẩy

Bạn sẽ nhận thấy rằng trong , các cột được phân tách bằng dấu cách theo mặc định

Ở đây, chúng tôi sẽ thay đổi điều đó để các cột được phân tách bằng dấu phẩy

Lưu mảng Numpy vào tệp văn bản

Đầu tiên, chúng ta sẽ lưu mảng Numpy của mình vào một tệp văn bản, với các dấu phẩy ngăn cách các cột

np.savetxt('my_numpy_data.txt', my_array, delimiter = ',')

Nếu bạn tìm thấy tệp này trên máy tính của mình, bạn sẽ thấy rằng các cột được phân tách bằng dấu phẩy

(Một lần nữa, nếu bạn muốn hiểu cách thức hoạt động của nó, tôi khuyên bạn nên đọc hướng dẫn của chúng tôi về Numpy savetxt. )

Tải mảng Numpy từ Tệp văn bản

Tiếp theo, chúng tôi sẽ tải tệp bằng Numpy loadtxt bằng cách sử dụng tham số

import numpy as np
6 để chỉ định rằng các cột được phân tách bằng dấu phẩy

myarray_1, myarray_2 = np.loadtxt(...)
0

NGOÀI

array([[1., 2., 3.],
       [4., 5., 6.]])

Ở đây, np. loadtxt đã phân tích cú pháp dữ liệu được phân tách bằng dấu phẩy và tải dữ liệu vào một mảng Numpy

VÍ DỤ 3. Sử dụng một loại dữ liệu cụ thể cho dữ liệu đã tải

Bây giờ, chúng ta sẽ sử dụng tham số

import numpy as np
4 để tải các số dưới dạng số nguyên

Lưu mảng Numpy vào tệp văn bản

Đầu tiên, chúng ta sẽ lưu mảng Numpy của mình,

array([[1., 2., 3.],
       [4., 5., 6.]])
1, vào một tệp văn bản với Numpy save

myarray_1, myarray_2 = np.loadtxt(...)
2

Ở đây, chúng tôi đã sử dụng tham số

array([[1., 2., 3.],
       [4., 5., 6.]])
2 để lưu dữ liệu dưới dạng số nguyên

Tuy nhiên, nếu bạn cố tải dữ liệu bằng Numpy loadtxt, nó sẽ nhập dữ liệu dưới dạng float theo mặc định

Để khắc phục điều này, chúng ta sẽ cần sử dụng tham số

import numpy as np
4

Tải mảng Numpy từ Tệp văn bản

Ở đây, chúng tôi sẽ đặt

array([[1., 2., 3.],
       [4., 5., 6.]])
4, điều này sẽ khiến Numpy loadtxt tải dữ liệu dưới dạng số nguyên

myarray_1, myarray_2 = np.loadtxt(...)
3

NGOÀI

myarray_1, myarray_2 = np.loadtxt(...)
4

Lưu ý rằng các giá trị trong mảng được tải dưới dạng số nguyên (i. e,

array([[1., 2., 3.],
       [4., 5., 6.]])
5s)

Và hãy nhớ. có nhiều loại dữ liệu mà bạn có thể chọn. Chúng tôi chỉ sử dụng số nguyên cho ví dụ cụ thể này

VÍ DỤ 4. Sử dụng một ký tự cụ thể để xác định nhận xét trong tệp văn bản đang được tải

Cuối cùng, hãy làm một ví dụ trong đó chúng tôi loại bỏ các nhận xét trong một tệp

Ở đây, chúng tôi sẽ sử dụng tham số

import numpy as np
5 để xác định (và xóa) các dòng nhận xét trong tệp văn bản

Lưu mảng Numpy vào tệp văn bản

Đầu tiên, chúng ta cần tạo một tệp văn bản có các dòng chú thích trong đó

Để làm điều này, chúng tôi sẽ sử dụng Numpy savetxt và thêm đầu trang và chân trang với các tham số

array([[1., 2., 3.],
       [4., 5., 6.]])
7 và
array([[1., 2., 3.],
       [4., 5., 6.]])
8

Ngoài ra, chúng tôi sẽ đặt tham số

import numpy as np
5 thành
np.savetxt('my_numpy_data.txt', my_array, delimiter = ',')
0 để chỉ định một
np.savetxt('my_numpy_data.txt', my_array, delimiter = ',')
1 chỉ định một dòng nhận xét (i. e. , dòng đầu trang và chân trang)

myarray_1, myarray_2 = np.loadtxt(...)
5

Nếu bạn kiểm tra

np.savetxt('my_numpy_data.txt', my_array, delimiter = ',')
2, bạn sẽ thấy đầu trang và chân trang có tiền tố là chuỗi nhận xét

myarray_1, myarray_2 = np.loadtxt(...)
6

(Một lần nữa, nếu bạn muốn hiểu cách thức hoạt động của nó, tôi khuyên bạn nên đọc hướng dẫn của chúng tôi về Numpy savetxt. )

Tải mảng Numpy từ Tệp văn bản

Bây giờ, chúng tôi sẽ tải tệp bằng Numpy loadtxt

Khi chúng tôi làm điều này, chúng tôi sẽ đặt

np.savetxt('my_numpy_data.txt', my_array, delimiter = ',')
3 để chỉ định rằng các dòng đầu trang và chân trang, bắt đầu bằng
np.savetxt('my_numpy_data.txt', my_array, delimiter = ',')
4, là các nhận xét cần được loại bỏ

myarray_1, myarray_2 = np.loadtxt(...)
7

NGOÀI

array([[1., 2., 3.],
       [4., 5., 6.]])

Như bạn có thể thấy, khi chúng tôi chạy mã này, nó sẽ loại bỏ các dòng nhận xét đầu trang và chân trang và tải dữ liệu số vào một mảng Numpy

Câu hỏi thường gặp về Numpy Load Text

Bây giờ bạn đã tìm hiểu về Numpy loadtxt và xem một số ví dụ, hãy xem lại một số câu hỏi thường gặp về chức năng này

Các câu hỏi thường gặp

Câu hỏi 1. Làm cách nào để bạn tải tệp nhị phân thay vì tệp văn bản?

Nếu bạn muốn tải dữ liệu Numpy của mình từ tệp nhị phân thay vì tệp văn bản, bạn nên sử dụng tải Numpy

Bạn có thể đọc về Numpy Load trong hướng dẫn này

Câu hỏi 2. Làm cách nào để lưu mảng Numpy vào tệp văn bản?

Nếu bạn muốn lưu dữ liệu Numpy vào tệp văn bản (thay vì tải dữ liệu từ tệp văn bản), bạn nên sử dụng Numpy savetxt

Bạn có thể đọc về Numpy savetxt trong hướng dẫn này

Để lại câu hỏi khác của bạn trong các ý kiến ​​​​dưới đây

Bạn có câu hỏi nào khác về Numpy loadtxt không?

Nếu vậy, hãy để lại câu hỏi của bạn trong phần bình luận bên dưới

Tham gia khóa học của chúng tôi để tìm hiểu thêm về Numpy

Trong hướng dẫn này, tôi đã chỉ cho bạn cách sử dụng Numpy loadtxt

Numpy loadtxt rất hữu ích nếu bạn cần tải mảng Numpy từ tệp văn bản, nhưng nếu bạn thực sự muốn thành thạo thao tác dữ liệu số trong Python, bạn sẽ cần tìm hiểu thêm về Numpy

Điều đó nói rằng, nếu bạn nghiêm túc về việc học Numpy, bạn nên cân nhắc tham gia khóa học cao cấp của chúng tôi có tên là Numpy Mastery

Numpy Mastery sẽ dạy cho bạn mọi thứ bạn cần biết về Numpy, bao gồm

  • Cách tạo mảng Numpy
  • Làm thế nào để trục Numpy hoạt động
  • Chức năng “Numpy random seed” làm gì
  • Cách sử dụng các hàm ngẫu nhiên Numpy
  • Cách định hình lại, tách và kết hợp các mảng Numpy của bạn
  • Áp dụng các phép toán trên mảng Numpy
  • và nhiều hơn nữa …

Khóa học cũng sẽ cung cấp cho bạn hệ thống thực hành độc đáo của chúng tôi. Hệ thống thực hành này sẽ cho phép bạn ghi nhớ tất cả các cú pháp Numpy mà bạn học

Nếu bạn gặp khó khăn trong việc ghi nhớ cú pháp Numpy, thì đây là khóa học bạn đang tìm kiếm

Nếu bạn thực hành như chúng tôi chỉ cho bạn, bạn sẽ ghi nhớ tất cả các cú pháp quan trọng của Numpy chỉ sau vài tuần