Sam*_*ton 4 python arrays numpy enumerate
所以我有一个 2D numpy 数组 (256,256),包含 0 到 10 之间的值,它本质上是一个图像。我需要删除 0 值并将它们设置为 NaN,以便我可以使用特定库 (APLpy) 绘制数组。但是,每当我尝试更改所有 0 值时,其他一些值都会被更改,在某些情况下会更改为原始值的 100 倍(不知道为什么)。
我正在使用的代码是:
for index, value in np.ndenumerate(tex_data):
if value == 0:
tex_data[index] = 'NaN'
Run Code Online (Sandbox Code Playgroud)
其中 tex_data 是我需要从中删除零的数据数组。不幸的是,我不能只对不需要的值使用掩码,因为据我所知,除了掩码数组之外,APLpy 不会。
无论如何我可以将 0 值设置为 NaN 而不更改数组中的其他值?
使用花式索引。像这样:
tex_data[tex_data==0] = np.nan
Run Code Online (Sandbox Code Playgroud)
我不知道为什么你的原始代码失败了。它在我看来是正确的,尽管效率非常低。