私は Python と Numpy が初めてで、マスクされたビューに適用するときに numpy.recarray を変更できないという問題に直面しています。ファイルから recarray を読み取り、マスクされたビューを 2 つ作成してから、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 は、まだゼロです。
私は何か間違ったことをしているに違いない。ビューの値を変更する適切な方法はありますか? 2 つのビューを 1 つずつ適用しているからでしょうか。
ありがとうございました。