如何从2个列表创建numpy数组

2024-03-29 09:20:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个整数频率的计数,我试图进入一个数组。L1是从1到9的整数,但只有当它们出现时,我才想使用它作为数组索引。L2是整数的频率,我希望将其输入数组中

L1 = [1,3,4,5,6,7,8,9]#数据中没有出现两个,因此2不在L1中

L2 = [6,7,1,2,8,4,2,1]

我想得到的输出是:A1 = [[6,0,7],[1,2,8],[4,2,1]] 我觉得我错过了什么,但这是我最后一次尝试:

for num in L1 and count in L2:
    a1[:num] = L2[:count]

1条回答
网友
1楼 · 发布于 2024-03-29 09:20:59

使列表阵列易于使用:

In [286]: L1 = np.array([1,3,4,5,6,7,8,9])
     ...: L2 = np.array([6,7,1,2,8,4,2,1])

设置放置值的位置:

In [287]: res = np.zeros(10,int)
In [288]: res[L1]
Out[288]: array([0, 0, 0, 0, 0, 0, 0, 0])
In [289]: res[L1]=L2
In [290]: res
Out[290]: array([0, 6, 0, 7, 1, 2, 8, 4, 2, 1])

哎呀,偏移了一点

In [291]: res = np.zeros(10,int)
In [292]: res[L1-1]=L2
In [293]: res
Out[293]: array([6, 0, 7, 1, 2, 8, 4, 2, 1, 0])

更正初始尺寸,然后重新塑造:

In [294]: res = np.zeros(9,int)
In [295]: res[L1-1]=L2
In [296]: res.reshape(3,3)
Out[296]: 
array([[6, 0, 7],
       [1, 2, 8],
       [4, 2, 1]])

相关问题 更多 >