繁体   English   中英

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

[英]Multiplying row in NumPy array by specific values based on another row

我有以下清单:

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

有任何有效的方法吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM