Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将矩阵中的对称值求和并写入文件_Python_Csv - Fatal编程技术网

Python 将矩阵中的对称值求和并写入文件

Python 将矩阵中的对称值求和并写入文件,python,csv,Python,Csv,例如,我有以下矩阵: 我希望Python代码将此矩阵的对称值相加(如上图所示(“n1,n2”和“n2,n1”是对称的,类似地,n12,n1和n1,n12是对称的)。我只是想澄清一下,例如,我希望将蓝色圆圈中的两个值相加,并插入同一个文件或另一个文件中此矩阵下方。同样,两个红色圆圈的值应相加,以此类推。 请注意,这是一个CSV文件 import csv source= csv.reader( open("E:/Work/Python Projects/files/combined.csv","w

例如,我有以下矩阵:

我希望Python代码将此矩阵的对称值相加(如上图所示(“n1,n2”和“n2,n1”是对称的,类似地,n12,n1和n1,n12是对称的)。我只是想澄清一下,例如,我希望将蓝色圆圈中的两个值相加,并插入同一个文件或另一个文件中此矩阵下方。同样,两个红色圆圈的值应相加,以此类推。 请注意,这是一个CSV文件

import csv
source= csv.reader( open("E:/Work/Python Projects/files/combined.csv","w") )
for row in source:

我不知道下一步该怎么办。请提供一些见解。

您的问题没有很好的定义,因此您将得到一个相当一般的答案。Numpy为这类问题提供了很多功能,并且操作是矢量化的,这意味着它比Python循环更快

import numpy as np
#read csv file
a = np.genfromtxt("myfile.csv", delimiter = ",", skip_header = 1)
#e.g you have an array like 
#a = np.arange(16).reshape(4, 4)
#sample input
#[[ 0  1  2  3]
# [ 4  5  6  7]
# [ 8  9 10 11]
# [12 13 14 15]]
mirror_sum = a.T + a
#sample output
#[[ 0  5 10 15]
# [ 5 10 15 20]
# [10 15 20 25]
# [15 20 25 30]]
#now flatten the upper triangle
all_sums = np.hstack(mirror_sum[i][:i] for i in range(mirror_sum.shape[0])) 
#sample output
#[ 5 10 15 15 20 25]
这显然只适用于二次形状的输入。你没有明确指出,在任何其他情况下都应该发生什么,所以我们不必考虑这一点。
您还必须适应您的csv文件,它提供了许多参数来处理不同的csv文件。同样,您提供的稀疏信息使得不可能得到更精确的答案

我还是不能用你的解决方案。我的问题很容易理解。只需要在对称单元格中添加值。所谓对称,我的意思是,例如“第1行第12列中的单元格与第12行第1列中的单元格是对称的。同样,第6行第4列中的单元格与第4行第6列中的单元格也是对称的,所以我不在乎将解决方案保存在何处。我只想要一个解决方案mirror\u sum=a.t+a ValueError:操作数不能与形状(12,11)一起广播(11,12)上面的例子是一个二次形状,因此选择了脚本。矩形3 x 10中的“对称单元格”是什么?您是否检查了文件是否正确读取?我认为应该是12 x 12。是否“skip_header=1”从csv文件中删除了第一行?然后省略这部分。明白了。谢谢