【问题标题】:np.savetxt and multiple arraysnp.savetxt 和多个数组
【发布时间】:2013-05-01 07:38:43
【问题描述】:

我有三个数组:

a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.array([7,8])

我想做这样的事情:

np.savetxt('data.txt',np.array(a,b,c))

或者只是

np.savetxt('data.txt',(a,b,c))

但我明白了

 TypeError: float argument required, not numpy.ndarray

我已经通过做类似的事情来规避这个问题

np.savetxt('data.txt',np.array([a[0],a[1],...,c[2]]))

但这不是很令人满意(特别是因为数组大小可以改变)并且还将所有值绘制在单列中而不是单行和多列中(我想要的方式)。

问题似乎是数组的维度不同。使用上面的例子,我最喜欢的输出类型是:

   1 2 3 4 5 6 7 8

有人知道更好的方法吗?

【问题讨论】:

标签: python numpy


【解决方案1】:

我想这就是你想要的。

>>>a=np.array([1,2,3])
>>>b=np.array([4,5,6])
>>>c=np.array([7,8,9])
>>>np.savetxt('data.txt',(list(a)+list(b)+list(c)),fmt='%s',delimiter=',',newline=' ')
>>>!cat data.txt
1 2 3 4 5 6 7 8 9

【讨论】:

  • 或按照 Francescos 的想法,您可以连接数组并执行类似 np.savetxt('data.txt',np.r_[a,b,c],fmt='%s' ,delimiter=',',newline=' ')
【解决方案2】:

您也可以尝试将它们与numpy.r_ 连接

np.savetxt('data.txt',np.r_[a,b,c])

【讨论】:

    【解决方案3】:

    我意识到一种可能的方法是在发送到 np.savetxt 之前先到 np.hstack((a,b,c))。我不确定在这种情况下会有一个“更好”的方式。

    【讨论】:

      【解决方案4】:

      你的代码对我来说很好用:

      $ python
      Python 2.7.3 (default, Nov  7 2012, 22:09:53) 
      [GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] on darwin
      >>> import numpy as np
      >>> a = np.array([1,2,3])
      >>> b = np.array([4,5,6])
      >>> c = np.array([7,8,9])
      >>> np.savetxt('data.txt', (a,b,c))
      >>> ^D
      $ cat data.txt
      1.000000000000000000e+00 2.000000000000000000e+00 3.000000000000000000e+00
      4.000000000000000000e+00 5.000000000000000000e+00 6.000000000000000000e+00
      7.000000000000000000e+00 8.000000000000000000e+00 9.000000000000000000e+00
      

      如果这不适合你,我想你的 NumPy 可能太旧了。在那种情况下,这是另一种方式,它同时转置了数据写入文件的方式,这可能也有兴趣:

      np.savetxt('data.txt', np.column_stack((a,b,c)))
      

      【讨论】:

      • 约翰 - 感谢您的回复。我在最初的问题中犯了一个错误。我提供的“最小”测试用例有点太小了。正如您所说,我提供的原始代码有效。希望更新解释了我一直在好转的错误。
      猜你喜欢
      • 1970-01-01
      • 2020-01-06
      • 2020-07-02
      • 2018-03-13
      • 1970-01-01
      • 2016-09-07
      • 2015-09-04
      • 2015-09-29
      • 2020-09-05
      相关资源
      最近更新 更多