我有一個(gè) numpy 數(shù)組[ [1,5,6], [10,12,20]]我想對(duì)數(shù)組的每個(gè)元素進(jìn)行操作,獲取當(dāng)前元素值并執(zhí)行操作。一種類似于 np.square 函數(shù)的批量操作。即 x = (x + 1) * 2 結(jié)果將是:[ [4,12,14], [22,26,42]]我知道我可以為每個(gè)元素執(zhí)行 for 循環(huán)并應(yīng)用該操作,但我想要更緊湊的語法。
2 回答

慕斯王
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以使用numpy:
import numpy as np
lst = [
[1, 5, 6],
[10, 12, 20]
]
lst = np.array(lst)
lst = (lst + 1) * 2
print(lst)
根據(jù)需要輸出:
[[ 4 12 14]
[22 26 42]]
如果最后你希望它是一個(gè)列表,你可以將它轉(zhuǎn)換回來,但np數(shù)組很棒。

慕村225694
TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
使用 numpy 矢量化的解決方案:
# define numpy array
arr = np.array([
[1,5,6],
[10,12,20]
])
# create function
func = np.vectorize(lambda x: (x + 1) * 2)
# apply function to array
func(arr)
添加回答
舉報(bào)
0/150
提交
取消