Numpy将布尔数组的字符串表示形式转换为布尔数组

New*_*wmu 7 python numpy

是否有一种原生的numpy方式来转换布尔字符串表示的数组,例如:

['True','False','True','False']
Run Code Online (Sandbox Code Playgroud)

对于我可以用于屏蔽/索引的实际布尔数组?我可以做一个for循环并重建数组,但对于大型数组,这很慢.

DSM*_*DSM 8

您应该可以进行布尔比较,IIUC,无论dtype是字符串还是object:

>>> a = np.array(['True', 'False', 'True', 'False'])
>>> a
array(['True', 'False', 'True', 'False'], 
      dtype='|S5')
>>> a == "True"
array([ True, False,  True, False], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

要么

>>> a = np.array(['True', 'False', 'True', 'False'], dtype=object)
>>> a
array(['True', 'False', 'True', 'False'], dtype=object)
>>> a == "True"
array([ True, False,  True, False], dtype=bool)
Run Code Online (Sandbox Code Playgroud)