【问题标题】:Which method can i use?我可以使用哪种方法?
【发布时间】:2020-01-21 01:15:05
【问题描述】:

我正在使用 anaconda 的下一个代码来取出两个矩阵之间的相关系数。 第一个矩阵读取矩阵左上角的 16 个文件。 求和是取平均值与另一个文件的结果进行比较

`` `python
for i in range(0,16):
    i = i + 5
    file = pd.read_csv(path,header=None)
    file=file.fillna(0)
    file = pd.DataFrame(file)
    matrix = np.matrix(file)
    matrix = np.flip(matrix, 1)
    b = np.copy(matrix) 
    b = np.swapaxes(b, 1, 0)
    np.fill_diagonal(b, 0)
    c = matrix + b
    sum = c.sum(0) / c.shape[0]
    sum=pd.DataFrame(sum)
    file2 = pd.read_csv(path,header=None)
    file2=pd.DataFrame(file2)
    file2 = file2.drop(file2.columns[48], axis=1)

` ``

如果 sum 是 (1,48) 的矩阵且 file2 是 (16,48) 的矩阵,则两个文件之间的相关系数。

【问题讨论】:

    标签: python pandas numpy scipy correlation


    【解决方案1】:

    我做了一些研究,希望以下内容可以提供帮助:

    1. numpy.corrcoef
    numpy.corrcoef(x, y=None, rowvar=True, bias=<no value>, ddof=<no value>)
    

    返回 Pearson 积矩相关系数。

    1. Computing the correlation coefficient between two multi-dimensional arrays

    两个二维数组之间的相关性(默认为“有效”情况):

    您可以像这样简单地使用矩阵乘法 np.dot -

    out = np.dot(arr_one,arr_two.T)

    与两个输入数组的每个成对行组合 (row1,row2) 之间的默认“有效”情况的相关性将对应于每个 (row1,row2) 位置的乘法结果。

    如果我误解了,请澄清您的问题。

    【讨论】:

    • 谢谢!但在这种情况下,我尝试了第一点和 corrwith。这里有一些注意事项: numpy 函数 correlate 要求输入数组是一维的。 numpy 函数 corrcoef 接受二维数组,但它们必须具有相同的形状。
    • 两组数据之间的相关性要求它们的定义大小相同。你能告诉我们你的最终目标吗?你可能想通过 sum = matrix of (1, 4) 和 file2 = matrix of (3, 4) 来给出一个简化的例子来说明。
    • 按行求和的数据与其他文件的每列数据比较,然后取出相关性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多