Hướng dẫn how do you save a 3d array in python? - làm thế nào để bạn lưu một mảng 3d trong python?

Nếu bạn muốn viết nó vào đĩa để dễ đọc trở lại dưới dạng một mảng numpy, hãy nhìn vào numpy.save. Dưa nó cũng sẽ hoạt động tốt, nhưng nó kém hiệu quả hơn đối với các mảng lớn (mà của bạn không phải là hoàn toàn tốt).

Nếu bạn muốn nó là con người dễ đọc, hãy nhìn vào numpy.savetxt.

EDIT: Vì vậy, có vẻ như savetxt không hoàn toàn là một tùy chọn tuyệt vời cho các mảng có> 2 chiều ... nhưng chỉ để rút ra mọi thứ để kết luận đầy đủ: So, it seems like savetxt isn't quite as great an option for arrays with >2 dimensions... But just to draw everything out to it's full conclusion:

Tôi chỉ nhận ra rằng numpy.savetxt nghẹt thở trên ndarrays với hơn 2 chiều ... đây có lẽ là theo thiết kế, vì không có cách nào được xác định để chỉ ra các kích thước bổ sung trong tệp văn bản.

Ví dụ. Cái này (một mảng 2D) hoạt động tốt

import numpy as np
x = np.arange(20).reshape((4,5))
np.savetxt('test.txt', x)

Mặc dù điều tương tự sẽ thất bại (với một lỗi khá không chính xác:

import numpy as np
x = np.arange(200).reshape((4,5,10))
np.savetxt('test.txt', x)
0) cho một mảng 3D:

import numpy as np
x = np.arange(200).reshape((4,5,10))
np.savetxt('test.txt', x)

Một cách giải quyết chỉ để chia mảng 3D (hoặc lớn hơn) thành các lát 2D. Ví dụ.

x = np.arange(200).reshape((4,5,10))
with open('test.txt', 'w') as outfile:
    for slice_2d in x:
        np.savetxt(outfile, slice_2d)

Tuy nhiên, mục tiêu của chúng tôi là rõ ràng là người có thể đọc được, trong khi vẫn dễ dàng đọc lại với

import numpy as np
x = np.arange(200).reshape((4,5,10))
np.savetxt('test.txt', x)
1. Do đó, chúng ta có thể có một chút dài dòng hơn và phân biệt các lát cắt bằng các dòng được nhận xét. Theo mặc định,
import numpy as np
x = np.arange(200).reshape((4,5,10))
np.savetxt('test.txt', x)
1 sẽ bỏ qua bất kỳ dòng nào bắt đầu bằng
import numpy as np
x = np.arange(200).reshape((4,5,10))
np.savetxt('test.txt', x)
3 (hoặc bất kỳ ký tự nào được chỉ định bởi
import numpy as np
x = np.arange(200).reshape((4,5,10))
np.savetxt('test.txt', x)
4 kwarg). (Điều này trông có vẻ dài hơn thực tế ...)

import numpy as np

# Generate some test data
data = np.arange(200).reshape((4,5,10))

# Write the array to disk
with open('test.txt', 'w') as outfile:
    # I'm writing a header here just for the sake of readability
    # Any line starting with "#" will be ignored by numpy.loadtxt
    outfile.write('# Array shape: {0}\n'.format(data.shape))
    
    # Iterating through a ndimensional array produces slices along
    # the last axis. This is equivalent to data[i,:,:] in this case
    for data_slice in data:

        # The formatting string indicates that I'm writing out
        # the values in left-justified columns 7 characters in width
        # with 2 decimal places.  
        np.savetxt(outfile, data_slice, fmt='%-7.2f')

        # Writing out a break to indicate different slices...
        outfile.write('# New slice\n')

Sản lượng này:

# Array shape: (4, 5, 10)
0.00    1.00    2.00    3.00    4.00    5.00    6.00    7.00    8.00    9.00   
10.00   11.00   12.00   13.00   14.00   15.00   16.00   17.00   18.00   19.00  
20.00   21.00   22.00   23.00   24.00   25.00   26.00   27.00   28.00   29.00  
30.00   31.00   32.00   33.00   34.00   35.00   36.00   37.00   38.00   39.00  
40.00   41.00   42.00   43.00   44.00   45.00   46.00   47.00   48.00   49.00  
# New slice
50.00   51.00   52.00   53.00   54.00   55.00   56.00   57.00   58.00   59.00  
60.00   61.00   62.00   63.00   64.00   65.00   66.00   67.00   68.00   69.00  
70.00   71.00   72.00   73.00   74.00   75.00   76.00   77.00   78.00   79.00  
80.00   81.00   82.00   83.00   84.00   85.00   86.00   87.00   88.00   89.00  
90.00   91.00   92.00   93.00   94.00   95.00   96.00   97.00   98.00   99.00  
# New slice
100.00  101.00  102.00  103.00  104.00  105.00  106.00  107.00  108.00  109.00 
110.00  111.00  112.00  113.00  114.00  115.00  116.00  117.00  118.00  119.00 
120.00  121.00  122.00  123.00  124.00  125.00  126.00  127.00  128.00  129.00 
130.00  131.00  132.00  133.00  134.00  135.00  136.00  137.00  138.00  139.00 
140.00  141.00  142.00  143.00  144.00  145.00  146.00  147.00  148.00  149.00 
# New slice
150.00  151.00  152.00  153.00  154.00  155.00  156.00  157.00  158.00  159.00 
160.00  161.00  162.00  163.00  164.00  165.00  166.00  167.00  168.00  169.00 
170.00  171.00  172.00  173.00  174.00  175.00  176.00  177.00  178.00  179.00 
180.00  181.00  182.00  183.00  184.00  185.00  186.00  187.00  188.00  189.00 
190.00  191.00  192.00  193.00  194.00  195.00  196.00  197.00  198.00  199.00 
# New slice

Đọc nó trở lại rất dễ dàng, miễn là chúng ta biết hình dạng của mảng ban đầu. Chúng ta chỉ có thể làm

import numpy as np
x = np.arange(200).reshape((4,5,10))
np.savetxt('test.txt', x)
5. Ví dụ như một ví dụ (bạn có thể làm điều này trong một dòng, tôi chỉ là một câu chuyện rõ ràng để làm rõ mọi thứ):

# Read the array from disk
new_data = np.loadtxt('test.txt')

# Note that this returned a 2D array!
print new_data.shape

# However, going back to 3D is easy if we know the 
# original shape of the array
new_data = new_data.reshape((4,5,10))
    
# Just to check that they're the same...
assert np.all(new_data == data)

Làm cách nào để lưu một mảng trong Python?

Bạn có thể lưu các mảng Numpy của mình vào các tệp CSV bằng hàm savetxt (). Hàm này lấy tên tệp và mảng làm đối số và lưu mảng vào định dạng CSV. Bạn cũng phải chỉ định dấu phân cách; Đây là ký tự được sử dụng để tách từng biến trong tệp, phổ biến nhất là dấu phẩy.using the savetxt() function. This function takes a filename and array as arguments and saves the array into CSV format. You must also specify the delimiter; this is the character used to separate each variable in the file, most commonly a comma.

Làm thế nào để bạn lưu một hình ảnh 3D trong Python?

Làm cách nào để lưu một mảng numpy 3D làm hình ảnh ?..
Sử dụng hình ảnh. fromArray () hàm để lưu một mảng numpy dưới dạng hình ảnh ..
Sử dụng hình ảnh. hàm imwrite () để lưu một mảng numpy dưới dạng hình ảnh ..
Sử dụng matplotlib. pyplot. ....
Sử dụng CV2. hàm imwrite () để lưu một mảng numpy dưới dạng hình ảnh ..

Bạn có thể có một mảng 3D trong Python?

Ví dụ #2 Để tạo một mảng ba chiều, chúng tôi vượt qua đối tượng đại diện cho x bởi y bởi z trong python, trong đó x là danh sách lồng nhau trong đối tượng, y là danh sách lồng nhau bên trong danh sách lồng nhau và z là giá trịBên trong mỗi danh sách y lồng nhau.To create a three-dimensional array, we pass the object representing x by y by z in python, where x is the nested lists in the object, y is the nested lists inside the x nested lists, and z is the values inside each y nested list.

Mảng 3D được lưu trữ như thế nào?

Bởi vì trong bộ nhớ vật lý, các mảng được lưu trữ bởi cột, sao cho tất cả các nội dung của cột 1 nằm liên tiếp sau đó cột 2, cột 3, v.v.Sự sắp xếp như vậy trong bộ nhớ được gọi là thứ tự chính.by column, such that all of column 1's contents reside consecutively then column 2's, column 3's, and so on. Such arrangement in memory is known as column major order.