在numpy数组的每一行中,我都有一个int和一个int的python列表。如何在不使用pandas的情况下将此列表转换为numpy int数组?
我有一个numpy数组,其中每行包含一个int列表和一个python int列表。如何将列表转换为numpy数组?我使用的是非常大的阵列,我希望避免使用Pandas,因为加载到Pandas中会占用更多内存 样本变量:在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
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])]]