So ändern Sie eine Spalte einer ausgewählten Zeile aus einem numpy strukturierten Array

Ich suche eine einfache Möglichkeit, ein Feld eines numpy strukturierten Arrays einer ausgewählten Zeile zu ändern. Hier ist mein SWE:

import numpy as np dt=np.dtype([('name',np.unicode,80),('x',np.float),('y',np.float)]) a=np.array( [('a',0.,0.),('b',0.,0.),('c',0.,0.) ],dtype=dt) b=a.copy() a[a['name']=='a']['x']=1 print a==b # return [ True True True] 

In diesem Beispiel sollten die a==b Ergebnisse [False True True] Eigentlich möchte ich die Zeile meines Arrays aus dem 'name' Feld auswählen und den Wert eines Feldes ändern (hier 'x' ).

    One Solution collect form web for “So ändern Sie eine Spalte einer ausgewählten Zeile aus einem numpy strukturierten Array”

    Ich fand die Antwort … Der Punkt ist die Position des Feldes und der Maske. Sie müssen die Maske auf die Feldspalte anwenden und nicht nach dem Feld des maskierten Arrays suchen:

     a['x'][a['name']=='a']=1 print a==b # returns [False True True] 
    Python ist die beste Programmiersprache der Welt.