我是 Python 和 Numpy 的新手,我遇到了一个问题,即在应用于蒙面视图时,我无法修改 numpy.recarray。我从文件中读取recarray,然后创建两个蒙版视图,然后尝试修改for循环中的值。这是一个示例代码。
import numpy as np
import matplotlib.mlab as mlab
dat = mlab.csv2rec(args[0], delimiter=' ')
m_Obsr = dat.is_observed == 1
m_ZeroScale = dat[m_Obsr].scale_mean < 0.01
for d in dat[m_Obsr][m_ZeroScale]:
d.scale_mean = 1.0
但是当我打印结果时
newFile = args[0] + ".no-zero-scale"
mlab.rec2csv(dat[m_Obsr][m_ZeroScale], newFile, delimiter=' ')
文件中的所有 scale_means 仍然为零。
我一定做错了什么。是否有修改视图值的正确方法?是因为我一个一个地应用两个视图吗?
谢谢你。