Python中使用字符串数组的逻辑运算

Emm*_*nil 2 python string numpy logical-operators

我知道以下逻辑操作适用于numpy:

A = np.array([True, False, True])
B = np.array([1.0, 2.0, 3.0])
C = A*B = array([1.0, 0.0, 3.0])
Run Code Online (Sandbox Code Playgroud)

但如果B是一个字符串数组,则情况并非如此.是否可以执行以下操作:

A = np.array([True, False, True])
B = np.array(['eggs', 'milk', 'cheese'])
C = A*B = array(['eggs', '', 'cheese'])
Run Code Online (Sandbox Code Playgroud)

这是一个乘以False的字符串应该等于一个空字符串.这可以在没有Python循环的情况下完成(不必使用numpy)吗?

谢谢!

Div*_*kar 5

您可以使用np.where基于面具进行此类选择 -

np.where(A,B,'')
Run Code Online (Sandbox Code Playgroud)

样品运行 -

In [4]: A
Out[4]: array([ True, False,  True], dtype=bool)

In [5]: B
Out[5]: 
array(['eggs', 'milk', 'cheese'], 
      dtype='|S6')

In [6]: np.where(A,B,'')
Out[6]: 
array(['eggs', '', 'cheese'], 
      dtype='|S6')
Run Code Online (Sandbox Code Playgroud)