我有一個選擇來自實驗的值,我想刪除其他行的某些行。含義:我測量一個場,一個極化和一個極化的誤差。現在,執行此測量的機器有時不會在某些行中寫入數值。所以,我可能會得到: 場=數據[0]刪除np.array中的選定行
field = [1,2,3,3,2,1,nan,4,1,2]
polarization = [nan, 10,230,13,123,50,102,90,45]
error = [0.1, 0.1, 0.2, 0.1, 0.1, 0.3, 0.1, 0.1, 0.4, 0.2]
現在我要刪除領域,極化和錯誤的第一要素,因爲偏振態[0] =價值楠。和所有數組的[6]值,因爲field [6] = nan。
這是我如何得到我的數據:
class DataFile(object):
def __init__(self, filename):
self._filename = filename
def read_dat_file(self):
data = np.genfromtxt(self._filename, delimiter=',', \
usecols=(3,4,5,), skip_header=23, skip_footer=3, unpack=True, converters={\
3: lambda x: self._conv(x), \
4: lambda x: self._conv(x), \
5: lambda x: self._2_conv(x)})
return data
a = DataFile("DATFILE.DAT")
print a
的_conv功能只是做了一些單位換算或寫「南」如果值是「」。我試圖做類似的事情:
data = data[~np.isnan(data).any(axis=1)]
但是後來我找回一個數組,事情變得混亂。我的下一個方法是對元素進行計數,從所有數組中刪除相同的元素......等等。工程,但它很醜。那麼最好的解決方案是什麼?