Ho avuto una domanda sul confronto di uguaglianza con numpy e array di stringhe. dire che io definisco il seguente array:Unicode confronto stringhe elementwise in numpy
x = np.array(['yes', 'no', 'maybe'])
allora posso verificare l'uguaglianza con altre stringhe e lo fa elemento saggio rispetto alla singola stringa (in seguito, credo, le regole di radiodiffusione qui: 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)
Tuttavia, se confronto con le stringhe Unicode ottengo un comportamento diverso con elemento saggio confronto solo succede se confronto la matrice alla stringa e solo un singolo confronto viene fatto se confronto la stringa alla matrice.
x == u'yes'
#op : array([ True, False, False], dtype=bool)
u'yes' == x
#op : False
non riesco a trovare i dettagli di questo comportamento nella documentazione NumPy e speravo che qualcuno potesse spiegare o punto me dettagli del perché il confronto con le stringhe Unicode comporta in modo diverso?
Che dire di 'u'yes '== np.array ([u'yes', u'no ', u'ay'])'? – hpaulj
Si comporta allo stesso modo per motivi @ 一 二三 la risposta sotto spiega. _i.e.:_ 'u'yes '== np.array ([u'yes', u'no ', u'maybe'])' restituisce 'False' e' np.array ([u 'yes', u'no ', u'be') ')) == u'yes'' restituisce 'array ([True, False, False], dtype = bool)' –