2010-08-05 2 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

Ответ на очень старое сообщение для моего собственного использования. Я использовал следующее, чтобы записать два массива 1D того же размера, что и 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

Это кажется хорошим, но не работает на Python 3. Здесь символом 'IndexError' выбрасывается 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

Добро пожаловать в StackOverflow и спасибо за помощь. Пожалуйста, объясните свой ответ только на код. – Yunnosch

Смежные вопросы