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
我有一个 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