将NumPy数组中的行乘以基于anoth的特定值

2024-10-03 06:29:52 发布

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

我有以下清单:

ls = [[1,2,3], [3,4] , [5] , [7,8], [23], [90, 81]]

这是我的numpy阵列:

array([[    1,     0,     4,     3],
       [   10,   100,  1000, 10000]])

我需要将数组第二行中的值乘以ls中的列表长度,该列表位于第一行中相应数字的索引处:

10 * len(ls[1])&100 * len(ls[0])

目标输出是这个数组:

array([[    1,     0,     4,     3],
       [   20,   300,  1000, 20000]])

有什么有效的方法吗


Tags: 方法numpy目标列表len数字数组array
1条回答
网友
1楼 · 发布于 2024-10-03 06:29:52

使用list comprehesion查找长度并将其与数组的第二行相乘,如下所示:

ls = [[1,2,3], [3,4] , [5] , [7,8]]
arr = np.array([[    1,     0,     2,     3],
                [   10,   100,  1000, 10000]])

arr[1,:] = arr[1,:]*([len(l) for l in ls])

arr
array([[    1,     0,     2,     3],
       [   30,   200,  1000, 20000]])

编辑:

arr[1,:] = arr[1,:]*([len(ls[l]) for l in arr[0,:]])

arr
array([[    1,     0,     2,     3],
       [   20,   300,  1000, 20000]])

相关问题 更多 >