[英]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.