Muszę załadować dane z różnych plików i zapisać go jako tablice. Mam multipliki o nazwie file.n.project.dat gdzie n wynosi 1-100. Do tej pory wydaje się, że przy użyciu numpy jest najlepszym sposobem na rozpoczęcie. Każdy plik jest tablicą 5 o 5. Muszę być w stanie dodawać / mnożyć tablice później w moim kodzie.

W tej chwili mam ten kod do załadowania danych, ale jak zrobić każdy plik jest własną zmienną?

import numpy as np
for i in range(1,101):
    np.loadtxt('file.' + str(i) + '.project.dat')

Więc to, co muszę zrobić, to załadować wiele plików i utwórz zmienną dla każdego pliku.

Widziałem poprzednie posty za pomocą Vars (), aby utworzyć zmienne, ale nie jestem w stanie dokonać tej pracy dla mojego problemu.

2
walkergt 26 czerwiec 2017, 23:45

3 odpowiedzi

Najlepsza odpowiedź

Czy możesz spróbować dołączyć każdą o wartości do listy, a następnie spróbuj uzyskać dostęp do elementów listy jako jeden, aby uzyskać wartości. import numpy as np l = [] for i in range(1,101): l.append(np.loadtxt('file.' + str(i) + '.project.dat')) print l

Wierzę, że twój problem powinien zostać rozwiązany w ten sposób. Odpowiadam wszystkie wartości, które chcesz.

3
JAugust 26 czerwiec 2017, 20:55

Możesz użyć słownika.

d = {}
for i in range(1, 101):
    d['matrix{}'.format(i)] = np.loadtxt('file.{}.project.dat'.format(i))

To nie tworzy nowych zmiennych, ale może rozwiązać Twoje zadanie, ponieważ możesz odnosić się do matryc według nazwisk, {x0}}

1
Igor Yudin 26 czerwiec 2017, 20:55

Zamiast tworzyć nową zmienną dla każdej tablicy, którą chcesz załadować z dysku, zapisz je wszystkie w kolekcji, takiej jak lista lub słownik.

Na przykład:

import numpy as np

# As a list
my_arrays = [np.loadtxt('file.{}.project.dat'.format(i)) for i in range(1, 101)]

# As a dictionary
my_arrays = {i: np.loadtxt('file.{}.project.dat'.format(i)) for i in range(1, 101)}
1
Daniel Jonsson 26 czerwiec 2017, 20:53