Ich hatte eine Frage über Gleichheitsvergleich mit numpy und Arrays von Strings. sagen, dass ich die folgende Reihe zu definieren:Unicode elementweise Zeichenfolgevergleich in numpy
x = np.array(['yes', 'no', 'maybe'])
Dann kann ich für die Gleichstellung mit anderen Zeichenfolge testen und es tut Element wiese Vergleich mit der Einzelsaite (nach, ich denke, die Rundfunk-Regeln hier: http://docs.scipy.org/doc/numpy-1.10.1/user/basics.broadcasting.html?):
'yes' == x
#op : array([ True, False, False], dtype=bool)
x == 'yes'
#op : array([ True, False, False], dtype=bool)
wenn ich jedoch mit Unicode-Strings zu vergleichen, bekomme ich ein anderes Verhalten mit dem Element weiser Vergleich geschieht nur, wenn ich das Array zu dem String zu vergleichen und nur ein einziger Vergleich durchgeführt wird, wenn ich die Zeichenfolge in dem Array zu vergleichen.
x == u'yes'
#op : array([ True, False, False], dtype=bool)
u'yes' == x
#op : False
Ich kann nicht Details dieses Verhalten in den numpy docs finden und hatte gehofft, jemand könnte mir erklären oder zeigen auf Details, warum Vergleich mit Unicode-Strings anders verhält?
Was ist mit 'u'yes' == np.array ([u'yes, u'no ', u'maybe']) '? – hpaulj
Es verhält sich auf die gleiche Weise aus Gründen @ 一 二三 Antwort unten erläutert. _i.e.:_ 'u'yes == np.array ([u'yes, u'no, u'maybe '])' gibt 'False' und' np.array ([u "Ja", "Nein", "Vielleicht") == Du gibst "Array" zurück ([True, False, False], dtype = bool) ' –