Làm cách nào để chuyển đổi CSV sang mảng 2D trong Python?

CSV là tệp giá trị được phân tách bằng dấu phẩy có. tiện ích mở rộng csv, cho phép lưu dữ liệu ở định dạng bảng.  

Trong bài viết này, chúng ta sẽ tìm hiểu cách chuyển đổi dữ liệu của chuỗi CSV thành mảng đối tượng 2D, trong đó hàng đầu tiên của chuỗi là hàng tiêu đề bằng JavaScript

Đưa ra một chuỗi giá trị được phân tách bằng dấu phẩy [CSV] cho một mảng 2D, sử dụng hàm Javascript

Input: 'Name,Roll Number\nRohan,01\nAryan,02' 

Output:  [
             {Name: "Rohan", Roll Number: "01"},
             {Name: "Aryan", Roll Number: "02"}
        ]
// With delimiter ;    
    
Input: 'Name;Roll Number\nRohan;01\nAryan;02' 
        
Output:    [
             {Name: "Rohan", Roll Number: "01"},
             {Name: "Aryan", Roll Number: "02"}
        ]    

Chúng ta phải biết một số hàm nguyên mẫu mảng và chuỗi sẽ hữu ích trong vấn đề này

hàm indexOf. chuỗi. nguyên mẫu. hàm indexOf[] tìm chỉ mục của lần xuất hiện đầu tiên của chuỗi đối số trong chuỗi đã cho và giá trị được trả về nằm trong chỉ mục dựa trên 0

Thí dụ

str = 'How\nare\nyou?' 

str.indexOf['\n'];

đầu ra

3

chức năng lát. Mảng. nguyên mẫu. slice[] trả về một mảng mới chứa một phần của mảng mà nó được triển khai và mảng ban đầu vẫn giữ nguyên

Thí dụ.  

['a','b','c','d'].slice[1]

đầu ra

 ['b','c','d']

chức năng bản đồ. Mảng. nguyên mẫu. phương thức map[] trả về một mảng mới với kết quả gọi một hàm được cung cấp trên mọi phần tử

Thí dụ

arr = [2, 4, 8, 16]

// Dividing each element of the array by 2
newArr = arr.map[ item => item/2] 

đầu ra

[1, 2, 4, 8]

chức năng chia. chuỗi. nguyên mẫu. Phương thức split[] được sử dụng để phân tách chuỗi đã cho thành một mảng các chuỗi bằng cách tách nó thành các chuỗi con bằng cách sử dụng dấu tách được chỉ định được cung cấp trong đối số

Thí dụ

str = "Geeks for Geeks"

// Split the array when ' ' is located
arr = str.split[' '];

đầu ra

________số 8_______

Giảm chức năng. Mảng. nguyên mẫu. Phương thức reduce[] trong JavaScript được sử dụng để giảm mảng thành một giá trị duy nhất và thực thi hàm được cung cấp cho từng phần tử của mảng từ trái sang phải và giá trị trả về của hàm được lưu trữ trong bộ tích lũy

Thí dụ

 arr = [2,4,6,8]
 
 // Here 0 is the initial value of the accumulator
 // while traversing, currentValue has been added
 
 arr.reduce[function[accumulator,currentValue]{
     return accumulator+currentValue;
 },0]

đầu ra

str = 'How\nare\nyou?' 

str.indexOf['\n'];
0

Tiếp cận

  • Phương thức slice[] chuỗi JavaScript trích xuất các phần của chuỗi và trả về các phần được trích xuất trong một chuỗi mới lấy '\ n' là lần xuất hiện đầu tiên
  • Giá trị dữ liệu được lưu trữ bằng cách sử dụng “\n” làm dấu phân cách
  • Hàm map[] trong JavaScript sẽ lặp qua tất cả các giá trị của mảng giá trị tiêu đề và nối thêm từng đối tượng vào cuối mảng
  • Biến “storeKeyValue” được sử dụng để lưu trữ từng khóa với các giá trị tương ứng

Thí dụ. Trong ví dụ này, chúng tôi sẽ chuyển đổi một giá trị được phân tách bằng dấu phẩy [CSV] thành một mảng javascript bằng cách sử dụng các phương thức slice[], map[], split[] và reduce[] của Javascript

Bạn có thể chuyển đổi tệp CSV thành mảng NumPy chỉ bằng cách gọi _______11_______5 với hai đối số. chuỗi

OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
6 và chuỗi
OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
7. Ví dụ: biểu thức
OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
8 trả về một mảng NumPy từ
OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
4 với các ký hiệu dấu phân cách
import numpy as np

array = np.loadtxt['my_file.csv', delimiter=',']
print[array]
0

Đây là một ví dụ

import numpy as np

array = np.loadtxt['my_file.csv', delimiter=',']
print[array]

đầu ra

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

Phương pháp 2. np. loadtxt[] với Tiêu đề

np. loadtxt[] + tiêu đề

Bạn có thể chuyển đổi tệp CSV có tiêu đề dòng đầu tiên thành mảng NumPy bằng cách gọi _____11_______5 với ba đối số.

OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
6,
import numpy as np

array = np.loadtxt['my_file.csv', delimiter=',']
print[array]
3 để bỏ qua dòng đầu tiên [tiêu đề] và chuỗi
OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
7. Ví dụ: biểu thức
import numpy as np

array = np.loadtxt['my_file.csv', delimiter=',']
print[array]
5 trả về một mảng NumPy từ
OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
4 với các ký hiệu phân cách
import numpy as np

array = np.loadtxt['my_file.csv', delimiter=',']
print[array]
0 trong khi bỏ qua dòng đầu tiên

Nhân vật. Bỏ qua dòng tiêu đề đầu tiên trong CSV bằng cách sử dụng đối số
import numpy as np

array = np.loadtxt['my_file.csv', delimiter=',']
print[array]
8 của hàm
import numpy as np

array = np.loadtxt['my_file.csv', delimiter=',']
print[array]
9

Đây là một ví dụ

import numpy as np

array = np.loadtxt['my_file.csv', skiprows=1, delimiter=',']
print[array]

đầu ra

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

Phương pháp 3. Trình đọc CSV

Trình đọc CSV

Để chuyển đổi tệp CSV

OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
4 thành danh sách các danh sách trong Python, hãy sử dụng phương pháp
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
1 để tạo trình đọc tệp CSV. Sau đó chuyển đổi đối tượng kết quả thành một danh sách bằng hàm tạo
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
2. Bước cuối cùng, bạn có thể chuyển đổi danh sách lồng nhau thành mảng NumPy bằng cách sử dụng hàm tạo
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
3

Đây là một ví dụ

import numpy as np
import csv


csv_filename = 'my_file.csv'

with open[csv_filename] as f:
    reader = csv.reader[f]
    lst = list[reader]
    print[lst]

Đầu ra là danh sách các danh sách

[['9', '8', '7'], ['6', '5', '4'], ['3', '2', '1']]

Bây giờ, nếu bạn cần chuyển đổi nó thành một mảng NumPy, bạn chỉ cần sử dụng hàm

[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
4 trên danh sách mới tạo như vậy

array = np.array[lst]
print[array]

đầu ra

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

🌎 Hướng dẫn liên quan. Cách chuyển đổi CSV thành Danh sách Danh sách trong Python

Phương pháp 4. np. genfromtxt[]

np. genfromtxt[]

Bạn có thể chuyển đổi tệp CSV thành mảng NumPy chỉ bằng cách gọi _____18_______5 với hai đối số. chuỗi

OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
6 và chuỗi
OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
7. Ví dụ: biểu thức
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
8 trả về một mảng NumPy từ
OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
4 với ký hiệu dấu phân cách
import numpy as np

array = np.loadtxt['my_file.csv', delimiter=',']
print[array]
0

Đây là một ví dụ

import numpy as np

array = np.loadtxt['my_file.csv', delimiter=',']
print[array]

đầu ra

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

Phương pháp 5. Pandas read_csv[] và df. to_numpy[]

read_csv[] và df. to_numpy[]

Một cách nhanh chóng và hiệu quả để đọc CSV thành mảng NumPy là kết hợp hàm

import numpy as np

array = np.loadtxt['my_file.csv', skiprows=1, delimiter=',']
print[array]
1 của Pandas để đọc tệp CSV đã cho thành DataFrame với hàm
import numpy as np

array = np.loadtxt['my_file.csv', skiprows=1, delimiter=',']
print[array]
2 để chuyển đổi Pandas DataFrame thành mảng NumPy

Đây là một ví dụ

OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
2

đầu ra

OUTPUT: 2D NumPy Array
[[9. 8. 7.]
 [6. 5. 4.]
 [3. 2. 1.]]
3

🌎 Hướng dẫn liên quan. 17 cách để đọc tệp CSV vào khung dữ liệu Pandas

Tóm lược

Chúng tôi đã thấy năm cách để chuyển đổi tệp CSV thành mảng 2D NumPy

  • Phương pháp 1.
    import numpy as np
    
    array = np.loadtxt['my_file.csv', delimiter=',']
    print[array]
    9
  • Phương pháp 2.
    import numpy as np
    
    array = np.loadtxt['my_file.csv', delimiter=',']
    print[array]
    9 với Tiêu đề
  • Phương pháp 3. Trình đọc CSV
  • Phương pháp 4.
    [[9. 8. 7.]
     [6. 5. 4.]
     [3. 2. 1.]]
    5
  • Phương pháp 5. Gấu trúc
    import numpy as np
    
    array = np.loadtxt['my_file.csv', skiprows=1, delimiter=',']
    print[array]
    6 và
    import numpy as np
    
    array = np.loadtxt['my_file.csv', skiprows=1, delimiter=',']
    print[array]
    7

Cách ưa thích của chúng tôi là

import numpy as np

array = np.loadtxt['my_file.csv', delimiter=',']
print[array]
9 vì tính đơn giản và Pandas vì khả năng mở rộng của nó

Nhiều chuyển đổi CSV Python hơn

🐍 Tìm hiểu thêm. Tôi đã biên soạn một "hướng dẫn cuối cùng" trên blog Finxter để chỉ cho bạn phương pháp tốt nhất, tương ứng, để chuyển đổi tệp CSV thành JSON, Excel, từ điển, Parquet, danh sách, danh sách danh sách, danh sách bộ dữ liệu, tệp văn bản, DataFrame,

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Làm cách nào để chuyển đổi tệp CSV thành mảng trong Python?

Sử dụng phương thức reader[] của thư viện csv . Phương pháp này cũng có thể được sử dụng cho đầu ra nhiều dòng nhưng chúng ta phải chuyển đổi nhiều dòng bằng phương thức splitlines[].

Làm cách nào để chuyển đổi tệp CSV thành mảng?

Bạn có thể sử dụng. phương thức split[] để chuyển đổi nó thành một mảng bằng mã như thế này. Trước tiên, mã phân tách chuỗi bằng \\n [ký tự dòng mới] để có từng dòng, sau đó sử dụng chức năng bản đồ để hoạt động trên từng dòng để phân tách từng dòng bằng dấu phân cách CSV - ,.

Làm cách nào để chuyển đổi CSV thành mảng NumPy?

Để đọc dữ liệu CSV vào một mảng bản ghi trong NumPy, bạn có thể sử dụng hàm genfromtxt[] của mô-đun NumPy , trong đối số của hàm này, bạn cần . Bạn cũng có thể sử dụng hàm pandas read_csv để đọc dữ liệu CSV thành một mảng bản ghi trong NumPy. df. mảng giá trị [[[ 1. , 2. , 3. ], [ 4. , 5. 5, 6. ]]]

Chúng ta có thể tạo mảng 2D bằng Python không?

Python cung cấp nhiều cách để tạo danh sách/mảng 2 chiều . Tuy nhiên, người ta phải biết sự khác biệt giữa những cách này vì chúng có thể tạo ra các phức tạp trong mã mà rất khó để tìm ra.

Chủ Đề