2010-08-05 318 views
6

我知道如何使用numpy.savetxt將數組寫入文件。我怎樣才能將多個數組寫入同一個文件?將多個numpy數組寫入文件

本質上我想對數列進行數學計算,然後用修改後的數字替換舊列。我讀完最簡單的方法是完全寫一個新文件,放入修改過的數字,然後將其他數字複製並粘貼到文件中。

任何幫助表示讚賞。

謝謝!

回答

4

如果您想將多個陣列寫入文件供以後使用,請查看numpy.savez

但是,根據您的描述,這聽起來像是您想要對分隔文本文件的特定列執行某些操作。

在這種情況下,只需加載整個事物並僅操作您需要的列即可。

E.g.

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

回答一個很舊的帖子,供我自己使用。我用下面的代碼寫出了兩個與CSV大小相同的1D數組。

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

這似乎不錯,但關於Python 3不起作用這裏,'IndexError'由NumPy的拋出。 – 2017-11-28 23:41:24

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

歡迎來到StackOverflow並感謝您的幫助。請解釋您的代碼專用答案。 – Yunnosch 2017-06-02 05:54:59