首页 > 解决方案 > 如何在列表中列出列表,结果不是我想要的。帮我

问题描述

我想创建一个随机值的数组,但结果不是我想要的。请帮我

ui1 = []
for i in range (3):
    ui = (random.rand(1, 2))
    ui = np.transpose(ui)
    ui1.append(ui)
    print(ui1) 

结果是这样的

[array([[0.55828503],
       [0.05327795]])]
[array([[0.55828503],
       [0.05327795]]), array([[0.54830574],
       [0.43161689]])]
[array([[0.55828503],
       [0.05327795]]), array([[0.54830574],
       [0.43161689]]), array([[0.19176995],
       [0.16990981]])]

我希望结果是没有“数组”,就像这样 [[xxxx,xxxx][xxxx,xxxx]]

标签: pythonpandaslistdataframenumpy

解决方案


ui变量是类型numpy.ndarray,因此以这种方式打印,以获得您需要的预期输出:

  1. numpy-arrays(ui)转换为list使用.tolist()函数numpy.ndarray
  2. 使用 concat (+=) 将 ui 添加到 ui1,而不是 append 以获取二维列表
  3. 消除transpose功能

尝试:

import numpy as np

ui1 = []

for i in range (3):
    ui = (np.random.rand(1, 2))
    ui1 += ui.tolist()
    print(ui1)

输出:

[[0.14189306309813854, 0.16354616375767916]]
[[0.14189306309813854, 0.16354616375767916], [0.6569125084666053, 0.297727414477004]]
[[0.14189306309813854, 0.16354616375767916], [0.6569125084666053, 0.297727414477004], [0.0970596850634321, 0.0031047000241498646]]

推荐阅读