如果有人知道更好的方法来进行以下操作,请告诉我。 我正在尝试替换numpy数组中的某些值。 每列中的替换条件均不同。 假设我有一个numpy数组和nodata值列表,例如:
import numpy as np
array = np.array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10,11,12]])
nodata_values = [4, 8, 3]
我想拥有的是一个数组,其值被替换为
array([[ 1., 2., nan],
[nan, 5., 6.],
[ 7., nan, 9.],
[10., 11., 12.]])
我知道我可以做到:
np.array([np.where(i == nodata_values[idx], np.nan, i)
for idx, i in enumerate(array.T)]).T
但是此代码在内部使用for循环,因此将其应用于具有上万行的表将花费时间。