python - 在 Python 中将自定义格式的稀疏矩阵 X 与目标数组 Y 连接起来

标签 python arrays python-2.7 matrix

我有一个稀疏矩阵 X 和一个目标数组 Y(其长度等于 X 的行),想象如下:

 X=([1.5 0.0 0.0 71.9 0.0 0.0 0.0], 
    [0.0 10.0 0.0 2.0 0.0 0.0 0.0], 
    [0.0 0.0 0.0 0.0 0.0 0.0 11.0])

 y =[4,2,-6]

我需要的是首先拥有新形式的稀疏矩阵,其中每行包含非零值及其相应的行索引 X:

示例

X1=( 0:1.5 3:71.9
     1:10 3:2
     6:11 )

为此我已经问过这个question (但是我仍然不知道如何存储 X1 在那里,以便稍后我将它与 Y 连接起来?)但问题的第二部分是连接 X1 和 Y ( X1 的行数仍然等于 Y 的长度)并存储最终结果,最终结果应类似于以下格式:

  data:
       4 0:1.5 3:71.9
       2 1:10 3:2
      -6 6:11
       ... 

如何从X,Y获取最终数据并将其存储在Python的文本文件中?

最佳答案

像这样连接:

data = [[a]+b for a, b in zip(Y, X1)]  
# data = [[a]+b for a, b in zip(Y, [':'.join([k,v]) for k,v in X1.items()])]

并写入文件:

with open(filename, 'w') as f:
    for row in data:
        f.write(' '.join(row))

关于python - 在 Python 中将自定义格式的稀疏矩阵 X 与目标数组 Y 连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403642/

相关文章:

python - 使用 BeautifulSoup 添加元标记

python - 如果变量在被另一个函数访问 "initialized"之前被访问,则引发异常

类中的python生成器

javascript - 以函数式方式向 js 对象添加字段

java - startsWith(String) 方法和数组

arrays - 如何在 4 X 4 数组 ruby 中赋值?

python - 如何找到 pandas 中每一对后续 DataFrame.index 值之间的差异?

Python:将 '\' 添加到 int 以显示字母

Python - 值错误 : unknown locale: UTF-8

python - 如何更改 Visual Studio 代码中的终端以使用非 Rosetta 终端,即让它使用 arm64 终端?