对python中不同文件的元素求和
我有多个同名文件(只更改后缀)。我想将新文件中文件的值相加。例如:文件对python中不同文件的元素求和,python,Python,我有多个同名文件(只更改后缀)。我想将新文件中文件的值相加。例如:文件energy.dat.1包含矩阵格式的值,文件energy.dat.2具有相同的格式,但有另一个值 例如: energy.dat.1file constants([[1,2],[3,4]]) energy.dat.2file constants([[0,1],[1,3]]) 我想获得另一个值,total_energy,它包含总和的结果(即:([[1,3],[4,7]])) 因为我做了很多文件: for file_name i
energy.dat.1
包含矩阵格式的值,文件energy.dat.2
具有相同的格式,但有另一个值例如:
energy.dat.1
file constants([[1,2],[3,4]])
energy.dat.2
file constants([[0,1],[1,3]])
我想获得另一个值,total_energy
,它包含总和的结果(即:([[1,3],[4,7]])
)
因为我做了很多文件:
for file_name in os.listdir('.'):
if file_name[0:10] == "energy.dat":
total_energy = total_energy +
np.sum(
np.loadtxt(file_name)
)
(之前我用正确的维度定义了数组total_energy
。问题:结果total_energy
,是一个矩阵,其值等于文件中所有元素的总和(([[13,13],[13,13]])
),而不是(([[1,3],[4,7]])
)
你有什么想法来达到我想要的结果吗
谢谢我不是numpy专家,但你不能省略np.sum部分吗?你是对的!。我想这更容易。非常感谢。也许if块可以重构为
total_energy+=np.sum(np.loadtxt(file_name))
——看起来是多余的,使总和增加一倍,这很难;如果np.sum()
是可消耗的,那么只需total_energy+=np.loadtext(filename)
就可以了?PD:内置Python的观点,从未使用过np
库(我甚至不知道它存在),也不是做os.listdir
,然后检查前缀以匹配energy.dat
,只使用glob.glob
,例如作为glob.glob('energy.dat*')中的文件名: