2014-09-05 5 views
1

У меня есть несколько матриц, каждый из которых хранится в массиве NumPy, и я хотел бы добавить их все.Добавление матриц numpy вместе

a1=np.load("20130101T054446") 
a2=np.load("20130102T205729") 
a3=np.load("20130104T153006") 
a4=np.load("20130113T130758") 
a5=np.load("20130113T212154") 

Я знаю, что его можно добавить их в этом далеко:

z=a1+a2+a3+a4+a5 

Но, так как у меня есть сотни матриц Я хотел бы сделать это в простой прочь.

Есть ли способ импортировать все в одно и то же время и приписывать его различным переменным?

ответ

0

Вместо того чтобы загружать каждый набор данных в другую переменную, вы можете создать список всех наборов данных, которые вы хотите загрузить, загрузить их в список и затем суммировать их.

import numpy as np 

datasets = ["20130101T054446", 
    "20130102T205729", 
    "20130104T153006", 
    "20130113T130758", 
    "20130113T212154"] # easy to extend if you have more of them 

a = [np.load(d) for d in datasets] 

z = np.sum(a, axis=0) 
2

Чтобы не создавать много матриц в памяти, было бы лучше, чтобы читать их в одном в то время, и добавить их в месте.

начала загрузки первой матрицы:

z = np.load("20130101T054446") 

Тогда читать остальные матрицы в одном в то время, добавляя каждый в z, как вы идете:

matrices = ["20130102T205729", "20130104T153006", "20130113T130758", "20130113T212154"] 

for m in matrices: 
    z += np.load(m) 
Смежные вопросы