【问题标题】:How to reshape an array of lists?如何重塑列表数组?
【发布时间】:2018-01-06 04:12:46
【问题描述】:

我有以下数组:

 array([ list(['4.224609607748e+00', '4.085857782359e+00', '1.273383604708e+00', '-6.802974691818e-03']),
   list(['9.099528133406e-03', '6.867550219273e-03', '5.859231188647e-03', '3.684441849425e-03']),
   list(['5.836775773317e-04', '-2.316776085880e-16', '-1.456850991492e-16', '-2.307897076406e-17']),
   list(['4.140895678156e-03', '2.603906355541e-03', '4.125025757803e-04', '-1.739011495381e-03']),
   list(['-1.681896173898e-03', '-5.241735641835e-04', '-1.739011375813e-03', '-1.681896058258e-03']), dtype=object)

我想对其进行修改,使其不再是一个由 6 个列表组成的数组,而是一个形状为 (6,4) 的数组(即每个浮点数都是数组中的一个元素)。我还想将 dtype 更改为 float (我不能这样做,因为它不会将列表识别为浮点数)。

有没有办法可以做到这一点?

谢谢!

【问题讨论】:

  • 但是最后一行只有一个字符串?
  • 这是不可能的。您的列表是一个参差不齐的数组。
  • 即使我删除了最后一行?
  • numpy 自动将非不规则列表转换为 ndarray。如果您想要floats,那么只需更改dtype=np.float

标签: python arrays python-2.7


【解决方案1】:

你只需要:

a = np.asarray([list(map(float, item)) for item in a])

【讨论】:

  • 嗯,这似乎不起作用。形状还是一样的。
  • 怎么回事?我去掉最后一行后测试,最终的形状正好是(5,3)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 2021-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多