Numpy 数组仅将函数应用于某些元素

Numpy array apply a function only to some elements

我有一个 numpy 数组,假设它的形状为 (10,10)。 现在我想将 np.exp() 应用于此数组,但仅应用于满足条件的某些特定元素。例如,我想将 np.exp 应用于所有非 0 或 1 的元素。有没有一种方法可以在不使用 for 循环迭代数组的每个元素的情况下做到这一点?

这可以通过基本的 numpy 操作来实现。这是一种方法:

A = np.random.randint(0,5,size=(10,10)).astype(float)  # data
goods = (A!=0) & (A!=1)  # 10 x 10 boolean array
A[goods] = np.exp(A[goods])  # boolean indexing