关于将单向列表转换为表示网格的二维数组



我保存了一个数据集,如下所示。一般来说,它是一个列表,这个主列表的每个元素都是一个子列表。每个子列表包含两个元素,其中第一个是值,第二个是 ID。

[[0.089, 0],
[0.075, 1],
[0.588, 2],
[0.906, 3],
[0.332, 4],
[0.707, 5],
[0.668, 6],
[0.426, 7],
[0.034, 8]]

可以使用以下代码段生成上述测试数据集

import numpy as np
testlist=[]
for i in range(9):
temp=[]
x1 = np.random.rand()
temp.append(x1)
temp.append(i)
testlist.append(temp)

如何将此列表传输到表示网格的二维数组中。例如,值将排列在这个二维数组中

0.089  0.045  0.588
0.907  0.332  0.707
0.668  0.426 0.034

这是你想要的吗?

重塑将改变数组的形状,形状中的-1意味着该值将由Numpy本身推断

arr = np.array([[0.089, 0],
[0.075, 1],
[0.588, 2],
[0.906, 3],
[0.332, 4],
[0.707, 5],
[0.668, 6],
[0.426, 7],
[0.034, 8]])
arr[:,0].reshape(-1,3).copy()

结果

array([[0.089, 0.075, 0.588],
[0.906, 0.332, 0.707],
[0.668, 0.426, 0.034]])

最新更新