簡體   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