Python 将列表转换为单独的列表
我有一个numpy.ndarray,它是这样的:Python 将列表转换为单独的列表,python,numpy,Python,Numpy,我有一个numpy.ndarray,它是这样的: X = array([1., 1., 1., 1., 1., 1., 1., 2., 1., 1.]) [1.0] [1.0] [1.0] [1.0] [1.0] [1.0] [1.0] [2.0] [1.0] [1.0] 我尝试通过以下操作将其转换为列表: samples = X.reshape(len(X)).tolist() 这就产生了这样的输出 [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0
X = array([1., 1., 1., 1., 1., 1., 1., 2., 1., 1.])
[1.0]
[1.0]
[1.0]
[1.0]
[1.0]
[1.0]
[1.0]
[2.0]
[1.0]
[1.0]
我尝试通过以下操作将其转换为列表:
samples = X.reshape(len(X)).tolist()
这就产生了这样的输出
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0]
试图将上述内容转换为单独的列表。这样做
new_list = [samples[i] for i in range(10)]
再次给出了这样的输出:
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0]
我试图获得如下输出:
X = array([1., 1., 1., 1., 1., 1., 1., 2., 1., 1.])
[1.0]
[1.0]
[1.0]
[1.0]
[1.0]
[1.0]
[1.0]
[2.0]
[1.0]
[1.0]
有人能帮我解决这个问题吗?使用
None
或np.newaxis
向numpy数组添加一个传统轴,然后使用,它将直接为您提供一个嵌套列表:
X[:,None].tolist()
# [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [2.0], [1.0], [1.0]]
使用的方法不起作用,因为您没有添加任何轴,您需要:
X.reshape(len(X), 1).tolist()
使用列表理解 替换代码:
new_list = [samples[i] for i in range(10)]
[[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [2.0], [1.0], [1.0]]
至
new_list = [[samples[i]] for i in range(10)]
O/p:
new_list = [samples[i] for i in range(10)]
[[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [2.0], [1.0], [1.0]]
样本[i]应在列表中:
new_list = [[samples[i]] for i in range(10)]
请注意,对于大型列表,重塑numpy数组,然后获取列表将比使用列表理解快得多