【问题标题】:How to transform python string into array如何将python字符串转换为数组
【发布时间】:2021-06-09 12:09:14
【问题描述】:

一个python字符串:

'[[4,2],[8,5]]'

例如,如果您有一个相当复杂的多维信息数组,可能是从文件或用户输入中提取的,并且自然是字符串。我应该如何将它变成一个实际的数组。我想要一个通用的实现,以便我可以对任何多维和复杂的数组执行此操作。这是针对机器学习项目的,这些数组中的任何一个都可以用一个形状(例如 (3,2,5) )及其对应值的列表(例如 [1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0] )表示,如下所示:

[[[1,2,3,4,5],
  [6,7,8,9,0]],
 [[1,2,3,4,5],
  [6,7,8,9,0]],
 [[1,2,3,4,5],
  [6,7,8,9,0]]]

【问题讨论】:

  • 您可以使用eval 执行代码,例如a = eval('[[4,2],[8,5]]')
  • 这是一个重复的问题:检查一下。 stackoverflow.com/questions/25572247/…
  • 问题实际上与machine-learningneural-network 无关 - 请不要向无关标签发送垃圾邮件(已删除)。

标签: python arrays data-structures


【解决方案1】:

试试这个:

def flatten_list(_2d_list):
    flat_list = []
    for element in _2d_list:
        if type(element) is list:
            for item in element:
                flat_list.append(item)
        else:
            flat_list.append(element)
    return flat_list

nested_list = [[4,2],[8,5]]

print(nested_list)
print(flatten_list(nested_list))

【讨论】:

  • 请注意,在 OP 的问题中,列表表达式实际上是一个 string;它是'[[4,2],[8,5]]',而不是[[4,2],[8,5]]
  • ooops......那么我们可以在 '[[4,2],[8,5]]' 上使用 string.split() 方法来转换为字符串。我们可以吗?
  • 好吧,你为什么不试试呢? :)
【解决方案2】:
import numpy as np
list = [1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0]
array = np.array(list)
array = np.reshape(array, (3,2,5))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-06
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    相关资源
    最近更新 更多