【问题标题】:How to add multiple data of matrices using python in separate files如何在单独的文件中使用 python 添加多个矩阵数据
【发布时间】:2021-05-13 19:06:08
【问题描述】:

我想使用 python 添加两个 23x23 矩阵的数据,但我不确定如何获得所需的输出。
虽然我在这里只显示了一行,但数据总共有 23 行。
任何帮助都会很棒。

代码:

将 numpy 导入为 np data2 = np.loadtxt('20.dat', dtype='float') data3 = np.loadtxt('21.dat', dtype='float') 打印(数据2+数据3)

我得到了什么:

 [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 21. 196.
   95. 35. 0. 0. 0. 0. 0. 0. 0.]

期望的输出:

 0 0 0 0 0 0 0 0 0 0 0 0 21 196 95 35 0 0 0 0 0 0 0

【问题讨论】:

  • 使用整数类型怎么样?
  • 我不太明白问题出在哪里。
  • 最重要的应该是单独一行来绘制数据。目前它需要两条线。我想问题是列之间有很多空格。整数不起作用..
  • sum_data = data2 + data3 然后print (' '.join(sum_data.astype('str')))。或者print (' '.join(sum_data.astype('int').astype('str'))) 看起来更像您的示例输出。
  • 你认为它可能是两行,因为字符串只是换行了吗?或者您是否建议在 196 之后的中间有一个换行符?不清楚。

标签: python numpy


【解决方案1】:

看起来结果在技术上是正确的(即数字是正确的),但您的问题在于格式。

您可以按照您想要的方式格式化单行,首先将每个元素转换为int,然后将其转换为str,然后加入它(用单个空格分隔每个元素)。

In [32]: b
Out[32]:
array([  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
         0.,  21., 196.,  95.,  35.,   0.,   0.,   0.,   0.,   0.,   0.,
         0.])

In [33]: " ".join(str(int(elt)) for elt in b)
Out[33]: '0 0 0 0 0 0 0 0 0 0 0 0 21 196 95 35 0 0 0 0 0 0 0'

更好的是,使用astype

" ".join(b.astype('int').astype(str'))

感谢@Xirtaminu 的评论

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多