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

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

慕村225694
TA貢獻1880條經驗 獲得超4個贊
使用 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)
添加回答
舉報
0/150
提交
取消