2010-08-05 39 views
6

Tôi biết cách sử dụng numpy.savetxt để viết một mảng vào một tệp. Làm thế nào tôi có thể viết nhiều mảng vào cùng một tệp?Viết nhiều mảng numpy để nộp

Về bản chất tôi muốn thực hiện phép toán thành một cột số và sau đó thay thế cột cũ bằng các số đã sửa đổi. Tôi đọc cách dễ nhất để làm điều này là viết một tệp hoàn toàn mới, đặt số đã sửa đổi vào và chỉ cần 'sao chép và dán' các số khác trong tệp.

Mọi trợ giúp đều được đánh giá cao.

Cảm ơn!

Trả lời

4

Nếu bạn muốn viết nhiều mảng vào một tệp để sử dụng sau này, hãy xem numpy.savez.

Tuy nhiên, từ mô tả của bạn, có vẻ như bạn đang muốn làm điều gì đó với một cột cụ thể của tệp văn bản được phân tách.

Trong trường hợp đó, chỉ cần tải toàn bộ nội dung vào và hoạt động trên cột bạn cần.

Ví dụ:

import numpy as np 

data = np.loadtxt('test.txt') 

# Multiply the 4th column by 5 
data[:,3] *= 5 

# Do something more complicated to the 2nd column 
data[:,1] = np.cos(data[:,1]) 

# Save the array back to the file 
np.savetxt('test.txt', data) 
3

Trả lời bài đăng cũ để tôi sử dụng. Tôi đã sử dụng sau đây để viết ra hai mảng 1D có cùng kích thước với CSV.

import numpy as np 

x = [1, 2, 3] 
y = [4, 5, 6] 
zipped = zip(x, y) 
# >>> [(1, 4), (2, 5), (3, 6)] 

# Save the array back to the file 
np.savetxt('z.csv', zipped, fmt='%i,%i') 
+0

Điều này có vẻ tốt đẹp, nhưng không hoạt động trên Python 3. Ở đây, một 'IndexError' được ném bởi NumPy. –

1
import numpy 


list1 = [1, 2, 3, 4] 

list2 = [0.45, 0.98, 0.89, 0.21] 

dat = numpy.array([list1, list2]) 

dat = dat.T 

numpy.savetxt('data.txt', dat, delimiter = ',') 
+5

Chào mừng bạn đến với StackOverflow và cảm ơn vì đã cố gắng giúp đỡ. Vui lòng giải thích câu trả lời chỉ mã của bạn. – Yunnosch

Các vấn đề liên quan