在numpy数组的每一行中,我都有一个int和一个int的python列表。如何在不使用pandas的情况下将此列表转换为numpy int数组?

在numpy数组的每一行中,我都有一个int和一个int的python列表。如何在不使用pandas的情况下将此列表转换为numpy int数组?,python,numpy,Python,Numpy,我有一个numpy数组,其中每行包含一个int列表和一个python int列表。如何将列表转换为numpy数组?我使用的是非常大的阵列,我希望避免使用Pandas,因为加载到Pandas中会占用更多内存 样本变量: new = np.array([[0, list([4928722, 3922609, 14413953, 10103423, 8948498])], [1, list([12557217, 5572869, 13415223, 2532000, 14

我有一个numpy数组,其中每行包含一个int列表和一个python int列表。如何将列表转换为numpy数组?我使用的是非常大的阵列,我希望避免使用Pandas,因为加载到Pandas中会占用更多内存

样本变量:

new = np.array([[0, list([4928722, 3922609, 14413953, 10103423, 8948498])],
       [1,
        list([12557217, 5572869, 13415223, 2532000, 14609022, 9830632, 9800679, 7504595, 10752682])],
       [2,
        list([10458710, 7176517,10203584, 12816205, 7484678, 7985600, 2745090, 14842579, 788308, 5984365])],
       [62711, list([6159359, 5003282, 11818909, 11760670])],
       [62712,
        list([4363069, 8566447, 9547966, 14554871, 2108131, 12207856, 14840255, 13087558])],
       [62713,
        list([11252023, 8710787, 4233645, 11415316, 13888594,  10860521, 1798095, 4389487, 4461271, 10070622, 12675925, 729773])]])
我正在寻找的示例结果(一些数字可能已重新排列;我只是举一个例子说明它应该如何排列):

我尝试的是:

我试着只显示列表,希望我能做些什么

new[:][1] =  new[:][1].tolist() 

但是new[:][1]并不仅仅显示列表,我想不出一种方法来实现这一点

您可以使用列表理解并将每个
列表
转换为
np.数组

result = np.array([[row[0], np.array(row[1])] for row in new])

print(result)
输出:

[[0 array([ 4928722,  3922609, 14413953, 10103423,  8948498])]
 [1 array([12557217,  5572869, 13415223,  2532000, 14609022,  9830632, 9800679,  7504595, 10752682])]
 [2 array([10458710,  7176517, 10203584, 12816205,  7484678,  7985600, 2745090, 14842579,   788308,  5984365])]
 [62711 array([ 6159359,  5003282, 11818909, 11760670])]
 [62712 array([ 4363069,  8566447,  9547966, 14554871,  2108131, 12207856, 14840255, 13087558])]
 [62713 array([11252023,  8710787,  4233645, 11415316, 13888594, 10860521, 1798095,  4389487,  4461271, 10070622, 12675925,   729773])]]

有没有办法把每一行都转换成一个numpy数组?我尝试了
result2=np.array([np.array(row)表示结果中的行])
但是它没有改变任何东西,不管怎样,看起来每一行都已经是一个numpy数组了。我很困惑,因为它们看起来像列表,因为它们没有“np(”,但是如果你在每一行都索引到,它就是一个numpy数组,看起来就像你有一个(n,2)形状的对象数据类型数组。
result[:,0]
是数字,0,1,…。
result[:,1]
是列表(在原始中)和结果中的数组。检查
type(result[0,1])
@hpaulj
类型(结果[0,1])
[[0 array([ 4928722,  3922609, 14413953, 10103423,  8948498])]
 [1 array([12557217,  5572869, 13415223,  2532000, 14609022,  9830632, 9800679,  7504595, 10752682])]
 [2 array([10458710,  7176517, 10203584, 12816205,  7484678,  7985600, 2745090, 14842579,   788308,  5984365])]
 [62711 array([ 6159359,  5003282, 11818909, 11760670])]
 [62712 array([ 4363069,  8566447,  9547966, 14554871,  2108131, 12207856, 14840255, 13087558])]
 [62713 array([11252023,  8710787,  4233645, 11415316, 13888594, 10860521, 1798095,  4389487,  4461271, 10070622, 12675925,   729773])]]