【问题标题】:savetxt two columns in python,numpy保存txt在python中的两列,numpy
【发布时间】:2013-05-01 12:09:41
【问题描述】:

我有一些数据作为 numpy 2D 数组列表-

array([[ 0.62367947],
       [ 0.95427859],
       [ 0.97984112],
       [ 0.7025228 ],
       [ 0.86436385],
       [ 0.71010739],
       [ 0.98748138],
       [ 0.75198057]])

array([[-1.,  1., -1.],    
       [-1.,  1.,  1.],
       [ 1.,  1.,  1.],
       [ 1., -1.,  1.],
       [-1., -1., -1.],
       [ 1.,  1., -1.],
       [ 1., -1., -1.],
       [-1., -1.,  1.]])

我想将它们保存在一个 txt 文件中,以便它们看起来像

0.62367947    -1 1 -1    
0.95427859    -1 1 1    
0.97984112     1 1 1

有人可以帮助我如何使用 numpy savetxt 来做到这一点

【问题讨论】:

  • 你遇到了什么错误?
  • 你能把你实际使用savetxt的那一行写进去吗?

标签: python numpy


【解决方案1】:
import numpy as np
R = np.array([[0.62367947],
              [0.95427859],
              [0.97984112],
              [0.7025228],
              [0.86436385],
              [0.71010739],
              [0.98748138],
              [0.75198057]])

phase = np.array([[-1., 1., -1.],
                  [-1., 1., 1.],
                  [1., 1., 1.],
                  [1., -1., 1.],
                  [-1., -1., -1.],
                  [1., 1., -1.],
                  [1., -1., -1.],
                  [-1., -1., 1.]])

np.savetxt('R2.txt', np.hstack([R, phase]), fmt=['%0.8f','%g','%g','%g'])    

产量

0.62367947 -1 1 -1
0.95427859 -1 1 1
0.97984112 1 1 1
0.70252280 1 -1 1
0.86436385 -1 -1 -1
0.71010739 1 1 -1
0.98748138 1 -1 -1
0.75198057 -1 -1 1

np.hstack 水平堆叠数组。因为Rphase 都是二维的,所以np.hstack([R, phase]) 产生

In [137]: np.hstack([R,phase])
Out[137]: 
array([[ 0.62367947, -1.        ,  1.        , -1.        ],
       [ 0.95427859, -1.        ,  1.        ,  1.        ],
       [ 0.97984112,  1.        ,  1.        ,  1.        ],
       [ 0.7025228 ,  1.        , -1.        ,  1.        ],
       [ 0.86436385, -1.        , -1.        , -1.        ],
       [ 0.71010739,  1.        ,  1.        , -1.        ],
       [ 0.98748138,  1.        , -1.        , -1.        ],
       [ 0.75198057, -1.        , -1.        ,  1.        ]])

将此二维数组传递给np.savetxt 会给您想要的结果。

【讨论】:

  • @unutbu - 好吧,您给出的答案是适用于一组 R2 和相位值。但我有 8 组 R2 和相位值。而且我必须使用附加将它们放在列表中。因此,当我尝试使用您的代码保存它们时-它说-数组尺寸必须一致,除了 d_0
  • 将所有R2phase 值收集到一个二维数组中。然后为整个二维数组调用np.savetxt一次
  • array([[ 0.62367947], [ 0.95427859], [ 0.97984112], [ 0.7025228 ], [ 0.86436385], [ 0.71010739], [ 0.98748138], [ 0.7519805 ., 1., -1.], [-1., 1., 1.], [ 1., 1., 1.], [ 1., -1., 1.], [-1., -1., -1.], [ 1., 1., -1.], [ 1., -1., -1.], [-1., -1., 1.]]) 我做了它们是二维数组。我仍然收到相同的错误消息。请看一下。
  • 请使用您用来生成这些数组的代码、您如何调用np.savetxt 以及您希望输出的样子来编辑您的原始帖子。感谢您发布了可运行的代码,但如果您将其缩减到相关部分就更好了。
  • 感谢您的解释。现在我明白了,这是根据我的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-13
  • 2018-01-01
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 2017-09-10
  • 1970-01-01
相关资源
最近更新 更多