Lưu mảng vào txt Python

NumPy. Lưu một mảng đã cho vào một tệp văn bản và tải nóCập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21. 50. 48 [UTC/GMT +8 giờ]

NumPy. Bài Tập Cơ Bản-37 Có Lời Giải

Viết chương trình NumPy để lưu một mảng đã cho vào tệp văn bản và tải nó

Giải pháp mẫu

Mã Python

import numpy as np
import os
x = np.arange[12].reshape[4, 3]
print["Original array:"]
print[x]
header = 'col1 col2 col3'
np.savetxt['temp.txt', x, fmt="%d", header=header] 
print["After loading, content of the text file:"]
result = np.loadtxt['temp.txt']
print[result]

Đầu ra mẫu

Original array:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]
After loading, content of the text file:
[[  0.   1.   2.]
 [  3.   4.   5.]
 [  6.   7.   8.]
 [  9.  10.  11.]]                         

Trình bày bằng hình ảnh


Trình chỉnh sửa mã Python-Numpy

Có một cách khác để giải quyết giải pháp này?

Trước. Viết chương trình NumPy để lưu hai mảng đã cho vào một tệp duy nhất ở định dạng nén [. npz] và tải nó.
Tiếp theo. Viết chương trình NumPy để chuyển đổi một mảng đã cho thành byte và tải nó dưới dạng mảng.

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



con trăn. Lời khuyên trong ngày

Thành viên điều hành

Làm cho nó rất thuận tiện để tìm hiểu xem một nhóm con có tồn tại trong một đối tượng dữ liệu hay không

lst = "5, 10, 50, 100, 500"
for j in lst:
    if j == str[0]:
        print[j, end="|"]

đầu ra

0|0|0|0|0|0| 

ví dụ không có trong

lst = list[range[50]]

if 100 not in lst:
    print["Value is out of range"]

đầu ra

Value is out of range
Đang tải.

 

  • bài tập. Top 16 chủ đề phổ biến nhất hàng tuần
  • Bài tập SQL, Thực hành, Lời giải - THAM GIA
  • Bài tập, Thực hành, Giải pháp SQL - SUBQUERIES
  • JavaScript cơ bản - Bài tập, Thực hành, Lời giải
  • Mảng Java. Bài tập, Luyện tập, Lời giải
  • Bài Tập Lập Trình C, Thực Hành, Lời Giải. Tuyên bố có điều kiện
  • Cơ sở dữ liệu nhân sự - SORT FILTER. Bài tập, Luyện tập, Lời giải
  • Bài Tập Lập Trình C, Thực Hành, Lời Giải. Sợi dây
  • Kiểu dữ liệu Python. Từ điển - Bài tập, Thực hành, Lời giải
  • Câu đố lập trình Python - Bài tập, Thực hành, Giải pháp
  • Mảng C++. Bài tập, Luyện tập, Lời giải
  • Câu lệnh điều kiện và vòng lặp JavaScript - Bài tập, Thực hành, Lời giải
  • Thuật toán cơ bản C# Sharp. Bài tập, Luyện tập, Lời giải
  • Python Lambda - Bài tập, Thực hành, Giải pháp
  • Khung dữ liệu Python Pandas. Bài tập, Luyện tập, Lời giải
  • Công cụ chuyển đổi
  • JavaScript. Xác thực biểu mẫu HTML

Bart, Quản lý tại ShopSmart [và lập trình viên Python bán thời gian], chịu trách nhiệm mua Số Xổ số cho nhóm của họ. Bart cần trợ giúp viết tập lệnh tạo số ngẫu nhiên và ghi chúng vào tệp văn bản phẳng bằng các hàm từ thư viện NumPy

💬 câu hỏi. Chúng ta sẽ viết mã để ghi dữ liệu này vào một tệp văn bản phẳng như thế nào?

Chúng ta có thể hoàn thành nhiệm vụ này bằng một trong các tùy chọn sau

  • Phương pháp 1. Sử dụng
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    0 để viết Mảng NumPy 1D
  • Phương pháp 2. Sử dụng
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    1,
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    2 và
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    0 để viết Mảng NumPy 1D
  • Phương pháp 3. Sử dụng
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    0 và
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    2 để viết một mảng 1D NumPy
  • Phương pháp 4. Sử dụng
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    0 để viết Mảng NumPy 2D
  • Phương pháp 5. Sử dụng
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    4 để viết Mảng 3D NumPy

Sự chuẩn bị

Trước khi tiếp tục, vui lòng đảm bảo thư viện NumPy đã được cài đặt trên máy tính. Bấm vào đây nếu bạn cần hướng dẫn

Thêm mã sau vào đầu mỗi tập lệnh. Đoạn mã này sẽ cho phép mã trong bài viết này chạy không có lỗi

import numpy as np 
import random

Trong bài viết này nhập thư viện ngẫu nhiên để tạo số nguyên tùy ý cho số Xổ Số

Phương pháp 1. Sử dụng savetxt[] để viết Mảng 1D NumPy

Một cách đơn giản để ghi mảng NumPy 1D vào tệp văn bản phẳng là sử dụng hàm

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
0 và chuyển các đối số thích hợp

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]

Ở trên, một mảng NumPy [

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
6] được gọi và chuyển qua trình tạo số nguyên ngẫu nhiên [
import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
7]. Hàm này sau đó được truyền ba [3] đối số. [bắt đầu, dừng, độ dài]. Sau đó, bảy [7] số Xổ số ngẫu nhiên lưu vào
import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
8

Tiếp theo,

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
9 được gọi và truyền bốn [4] đối số sau

  1. Tên tệp,
    Original array:
    [[ 0  1  2]
     [ 3  4  5]
     [ 6  7  8]
     [ 9 10 11]]
    After loading, content of the text file:
    [[  0.   1.   2.]
     [  3.   4.   5.]
     [  6.   7.   8.]
     [  9.  10.  11.]]                         
    
    50
  2. Mảng NumPy,
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    8
  3. Ký tự
    Original array:
    [[ 0  1  2]
     [ 3  4  5]
     [ 6  7  8]
     [ 9 10 11]]
    After loading, content of the text file:
    [[  0.   1.   2.]
     [  3.   4.   5.]
     [  6.   7.   8.]
     [  9.  10.  11.]]                         
    
    52 tùy chọn. Theo mặc định, một
    Original array:
    [[ 0  1  2]
     [ 3  4  5]
     [ 6  7  8]
     [ 9 10 11]]
    After loading, content of the text file:
    [[  0.   1.   2.]
     [  3.   4.   5.]
     [  6.   7.   8.]
     [  9.  10.  11.]]                         
    
    52 [
    Original array:
    [[ 0  1  2]
     [ 3  4  5]
     [ 6  7  8]
     [ 9 10 11]]
    After loading, content of the text file:
    [[  0.   1.   2.]
     [  3.   4.   5.]
     [  6.   7.   8.]
     [  9.  10.  11.]]                         
    
    54] được thêm vào cuối mỗi phần tử. Điều này thay đổi để viết từng phần tử trên một dòng, cách nhau bằng dấu cách [
    Original array:
    [[ 0  1  2]
     [ 3  4  5]
     [ 6  7  8]
     [ 9 10 11]]
    After loading, content of the text file:
    [[  0.   1.   2.]
     [  3.   4.   5.]
     [  6.   7.   8.]
     [  9.  10.  11.]]                         
    
    55]
  4. Định dạng số nguyên. Theo mặc định, số float được hiển thị. Sửa đổi tùy chọn định dạng thành
    Original array:
    [[ 0  1  2]
     [ 3  4  5]
     [ 6  7  8]
     [ 9 10 11]]
    After loading, content of the text file:
    [[  0.   1.   2.]
     [  3.   4.   5.]
     [  6.   7.   8.]
     [  9.  10.  11.]]                         
    
    56 sẽ thay đổi hiển thị thành số nguyên

Nếu thành công, tệp nói trên nằm trong thư mục làm việc hiện tại chứa bảy [7] số nguyên ngẫu nhiên trên một dòng

Nội dung tệp

Original array:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]
After loading, content of the text file:
[[  0.   1.   2.]
 [  3.   4.   5.]
 [  6.   7.   8.]
 [  9.  10.  11.]]                         
57

Hướng dẫn NumPy - Mọi thứ bạn cần biết để bắt đầu


Xem video này trên YouTube

Phương pháp 2. Sử dụng open[], map[] và join[] để viết Mảng NumPy 1D

Một cách khác để ghi mảng NumPy 1D vào tệp văn bản phẳng là sử dụng

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
1 và viết nội dung bằng cách sử dụng
import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
2 và
import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
0

Original array:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]
After loading, content of the text file:
[[  0.   1.   2.]
 [  3.   4.   5.]
 [  6.   7.   8.]
 [  9.  10.  11.]]                         
5

Ở trên, một mảng NumPy [

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
6] được gọi và chuyển qua trình tạo số nguyên ngẫu nhiên [
import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
7]. Hàm này sau đó được truyền ba [3] đối số. [bắt đầu, dừng, độ dài]. Sau đó, tám [8] số Xổ số ngẫu nhiên lưu vào
lst = "5, 10, 50, 100, 500"
for j in lst:
    if j == str[0]:
        print[j, end="|"]
73

Tiếp theo,

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
1 được gọi để mở tệp đã chỉ định [
lst = "5, 10, 50, 100, 500"
for j in lst:
    if j == str[0]:
        print[j, end="|"]
75] ở chế độ ghi [
lst = "5, 10, 50, 100, 500"
for j in lst:
    if j == str[0]:
        print[j, end="|"]
76] và tạo Đối tượng tệp [
lst = "5, 10, 50, 100, 500"
for j in lst:
    if j == str[0]:
        print[j, end="|"]
77]

💡Lưu ý. Đối tượng tệp cho phép truy cập và thao tác với tệp

Sau khi mở, điều sau đây xảy ra

  • Hàm
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    2 được gọi. Hàm này nhận hai [2] đối số. một chức năng [
    lst = "5, 10, 50, 100, 500"
    for j in lst:
        if j == str[0]:
            print[j, end="|"]
    
    79] và một lần lặp [
    lst = "5, 10, 50, 100, 500"
    for j in lst:
        if j == str[0]:
            print[j, end="|"]
    
    73]. Điều này trả về một đối tượng
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    2 có thể lặp lại, tương tự như bên dưới.
  • Sau đó, hàm
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    0 được gọi. Hàm này lặp qua đối tượng
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    2 được trả về, nối từng phần tử bằng dấu phẩy [‘,’] và ghi vào tệp

Nếu thành công, tệp nói trên nằm trong thư mục làm việc hiện tại chứa tám [8] số nguyên ngẫu nhiên trên một dòng

Nội dung tệp

0|0|0|0|0|0| 
44

Hàm open[] trong Python – Hướng dẫn 80/20 bằng ví dụ


Xem video này trên YouTube

Phương pháp 3. Sử dụng savetxt[] và reshape[] để viết một mảng 1D NumPy

Để ghi một mảng NumPy 1D vào một tệp văn bản phẳng với cách hiển thị khác, hãy sử dụng

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
0 và
import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
2

Đối với ví dụ này, Bart đã tạo hai [2] vé xổ số Pick5, được lưu vào mảng NumPy 1D. Hãy sử dụng

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
2 để giải quyết vấn đề

lst = "5, 10, 50, 100, 500"
for j in lst:
    if j == str[0]:
        print[j, end="|"]
7

Ở trên, một mảng NumPy 1D được tạo với 10 số vé. Tuy nhiên, mỗi vé phải có năm [5] số. Hàm

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
2 sửa mảng ban đầu thành hai [2] hàng, năm [5] phần tử mỗi hàng. Kết quả lưu vào
0|0|0|0|0|0| 
49

Tiếp theo,

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
0 được gọi và ba [3] đối số sau được truyền

  1. Tên tệp,
    lst = list[range[50]]
    
    if 100 not in lst:
        print["Value is out of range"]
    
    01
  2. Mảng NumPy,
    lst = list[range[50]]
    
    if 100 not in lst:
        print["Value is out of range"]
    
    02
  3. Định dạng số nguyên. Theo mặc định, số float được hiển thị. Sửa đổi tùy chọn định dạng thành
    Original array:
    [[ 0  1  2]
     [ 3  4  5]
     [ 6  7  8]
     [ 9 10 11]]
    After loading, content of the text file:
    [[  0.   1.   2.]
     [  3.   4.   5.]
     [  6.   7.   8.]
     [  9.  10.  11.]]                         
    
    56 sẽ thay đổi hiển thị thành số nguyên

Nếu thành công, tệp nêu trên nằm trong thư mục làm việc hiện tại

Nội dung tệp

lst = list[range[50]]

if 100 not in lst:
    print["Value is out of range"]
04

Phương pháp 4. Sử dụng savetxt[] để viết Mảng NumPy 2D

Để ghi một mảng NumPy 2D vào một tệp văn bản phẳng với màn hình hiển thị theo hàng, hãy sử dụng

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
0

0|0|0|0|0|0| 
4

Ở trên tạo ra một mảng 2D NumPy; . Kết quả lưu vào

lst = list[range[50]]

if 100 not in lst:
    print["Value is out of range"]
06

Tiếp theo,

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
0 được gọi và ba [3] đối số sau được truyền

  1. Tên tệp,
    lst = list[range[50]]
    
    if 100 not in lst:
        print["Value is out of range"]
    
    08
  2. Mảng NumPy,
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    6
  3. Định dạng số nguyên. Theo mặc định, số float được hiển thị. Sửa đổi tùy chọn định dạng thành
    Original array:
    [[ 0  1  2]
     [ 3  4  5]
     [ 6  7  8]
     [ 9 10 11]]
    After loading, content of the text file:
    [[  0.   1.   2.]
     [  3.   4.   5.]
     [  6.   7.   8.]
     [  9.  10.  11.]]                         
    
    56 sẽ thay đổi hiển thị thành số nguyên

Nếu thành công, tệp nêu trên nằm trong thư mục làm việc hiện tại

Nội dung tệp

lst = list[range[50]]

if 100 not in lst:
    print["Value is out of range"]
91

Phương pháp 5. Sử dụng save[] để viết Mảng 3D NumPy

Thật không may, các tệp văn bản phẳng không thể xử lý các mảng 3D NumPy. Do đó,

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
0 được sử dụng trong các ví dụ trên sẽ không hoạt động ở đây và thực tế là tạo ra lỗi. Hàm
import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
4 sẽ cần được sử dụng

lst = list[range[50]]

if 100 not in lst:
    print["Value is out of range"]
0

Ở trên, tạo một mảng 3D NumPy. Kết quả lưu vào

lst = list[range[50]]

if 100 not in lst:
    print["Value is out of range"]
94

Tiếp theo,

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
8 được gọi và hai [2] đối số sau được truyền

  1. Tên tệp,
    lst = list[range[50]]
    
    if 100 not in lst:
        print["Value is out of range"]
    
    94. Không thêm phần mở rộng ở đây dưới dạng tệp nhị phân có phần mở rộng là.
    lst = list[range[50]]
    
    if 100 not in lst:
        print["Value is out of range"]
    
    97 sẽ được tạo [______498]
  2. Mảng NumPy,
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    9

Nếu thành công, tệp nêu trên nằm trong thư mục làm việc hiện tại

Để xem nội dung tệp, hãy chạy đoạn mã sau

lst = list[range[50]]

if 100 not in lst:
    print["Value is out of range"]
9

Để đọc trong tệp nhị phân,

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
00 được gọi và các đối số sau được truyền

  1. Tên tệp,
    lst = list[range[50]]
    
    if 100 not in lst:
        print["Value is out of range"]
    
    98
  2. Đối số
    import random
    
    lotto_649 = np.array[np.random.randint[1, 100, 7]]
    np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
    02 được đặt thành True

💡Lưu ý. Đối số,

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
03, cho phép tải mảng đối tượng đã chọn được lưu trữ trong tệp
import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
04.  

Nội dung tệp

import random

lotto_649 = np.array[np.random.randint[1, 100, 7]]
np.savetxt['lotto_649.txt', lotto_649, newline=' ', fmt="%d"]
05

Bản tóm tắt

Các phương pháp ghi mảng NumPy này vào tệp văn bản phẳng sẽ cung cấp cho bạn đủ thông tin để chọn phương pháp tốt nhất cho yêu cầu viết mã của bạn

Chủ Đề