将列表转换成单独的列表

时间:2019-05-15 11:16:43

标签: python numpy

我有一个像这样的numpy.ndarray:

CREATE TRIGGER T_TableA_I
on users
after insert
as
    set nocount on

    insert into results (userID)
    select u.UserID
    from
        users u
            inner join
        results r
            on
                u.UserID = r.UserID

我试图通过执行以下操作转换为列表:

X = array([1., 1., 1., 1., 1., 1., 1., 2., 1., 1.])

给出了这样的输出

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)]

im试图获得这样的输出:

[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0]

有人可以帮我吗?

3 个答案:

答案 0 :(得分:4)

尝试一下:

替换您的代码:

new_list = [samples[i] for i in range(10)]

收件人

new_list = [[samples[i]] for i in range(10)]

O / P:

[[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [2.0], [1.0], [1.0]]

答案 1 :(得分:3)

使用Nonenp.newaxis向numpy数组添加辅助轴,然后使用ndarray.tolist,这将直接为您提供嵌套列表:

X[:,None].tolist()
# [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [2.0], [1.0], [1.0]]

您使用np.reshape的方法不起作用,因为您没有添加任何轴,您需要:

X.reshape(len(X), 1).tolist() 

答案 2 :(得分:0)

samples [i]应该在列表中:

new_list = [[samples[i]] for i in range(10)]