numpy如何对数组的每个元素进行批量操作

我有一个 numpy 数组


[

 [1,5,6],

 [10,12,20]

]

我想对数组的每个元素进行操作,获取当前元素值并执行操作。一种类似于 np.square 函数的批量操作。


即 x = (x + 1) * 2 结果将是:


[

 [4,12,14],

 [22,26,42]

]

我知道我可以为每个元素执行 for 循环并应用该操作,但我想要更紧凑的语法。


白板的微信
浏览 144回答 2
2回答

慕斯王

您可以使用numpy:import numpy as nplst = [    [1, 5, 6],    [10, 12, 20]]lst = np.array(lst)lst = (lst + 1) * 2print(lst)根据需要输出:[[ 4 12 14] [22 26 42]]如果最后你希望它是一个列表,你可以将它转换回来,但np数组很棒。

慕村225694

使用 numpy 矢量化的解决方案:# define numpy arrayarr = np.array([ [1,5,6], [10,12,20]])# create functionfunc = np.vectorize(lambda x: (x + 1) * 2)# apply function to arrayfunc(arr)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python