Fle*_*gjp 5 python string mapping boolean numpy
我有一个像这样的布尔数组
bool_arr = [True, True, False]
Run Code Online (Sandbox Code Playgroud)
我想将两个字符串映射到每个布尔值
string_arr = ['r', 'r, 'k']
Run Code Online (Sandbox Code Playgroud)
我将如何使用 numpy 映射它?
>>> bool_arr = [True, True, False]
>>> ['r' if x else 'k' for x in bool_arr]
['r', 'r', 'k']
Run Code Online (Sandbox Code Playgroud)
使用索引的矢量化方法 -
bool_arr = np.array([True, True, False]) # Input boolean array
strings = np.array(['k','r']) # Input array of strings for mapping
out = np.take(strings, bool_arr)
out = np.take(strings, bool_arr.astype(int))
out = strings[bool_arr.astype(int)]
Run Code Online (Sandbox Code Playgroud)
np.where如果我们需要在两个字符串之间进行选择,则使用-
np.where(bool_arr, 'r','k')
Run Code Online (Sandbox Code Playgroud)