例如,我有300x600 numpy数组。我想使用map的lambda来修改这个数组中的每个值,并使用一些if条件。 (例如,如果一个单元格<100则它将变为0,否则什么都不做)
使用map
和lambda
证明lambda中的每个变量都是一个大小为600的数组。你是否有任何优雅的函数,我能够迭代任何大小的数组的所有元素和修改它们?
答案 0 :(得分:2)
In [2]: arr = np.arange(25).reshape(5, 5)
In [3]: arr
Out[3]:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
In [4]: arr[arr % 3 == 0] = 42
In [5]: arr
Out[5]:
array([[42, 1, 2, 42, 4],
[ 5, 42, 7, 8, 42],
[10, 11, 42, 13, 14],
[42, 16, 17, 42, 19],
[20, 42, 22, 23, 42]])
答案 1 :(得分:0)
您可以使用
f=np.vectorize(<lambda>)
f(a)