Python 将矩阵中的对称值求和并写入文件
例如,我有以下矩阵: 我希望Python代码将此矩阵的对称值相加(如上图所示(“n1,n2”和“n2,n1”是对称的,类似地,n12,n1和n1,n12是对称的)。我只是想澄清一下,例如,我希望将蓝色圆圈中的两个值相加,并插入同一个文件或另一个文件中此矩阵下方。同样,两个红色圆圈的值应相加,以此类推。 请注意,这是一个CSV文件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
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文件中删除了第一行?然后省略这部分。明白了。谢谢