python - 如何在列表中列出列表,结果不是我想要的。帮我
问题描述
我想创建一个随机值的数组,但结果不是我想要的。请帮我
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]]
解决方案
该ui
变量是类型numpy.ndarray
,因此以这种方式打印,以获得您需要的预期输出:
- 将
numpy-arrays
(ui)转换为list
使用.tolist()
函数numpy.ndarray
- 使用 concat (+=) 将 ui 添加到 ui1,而不是 append 以获取二维列表
- 消除
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]]